请教一个web.xml的error-page问题,谢谢~~

zhl1015 2009-08-10 03:36:57
在web.xml的最下面配置:
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/jsp/common/error.jsp</location>
</error-page>


但如果JSP页面报错了,在控制台里能看到错误信息,但浏览器显示空白,不能跳转到/jsp/common/error.jsp里,错误信息有一句是:
严重: Exception Processing ErrorPage[exceptionType=javax.servlet.ServletException, location=/jsp/common/error.jsp]


不知道是什么问题,请大家帮帮忙~~谢谢了!
...全文
804 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhl1015 2009-08-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 aywrenyue 的回复:]
从错误来看,你的error.jsp本身就有问题
[/Quote]
兄弟,error.jsp代码我帖出来了,能否看看是什么错,我苦了一天了~~
aywrenyue 2009-08-10
  • 打赏
  • 举报
回复
从错误来看,你的error.jsp本身就有问题
zhl1015 2009-08-10
  • 打赏
  • 举报
回复
详细的错误代码如下,是我在JSP页面上用标签引用了一个不存在的属性导致的:
2009-8-10 17:26:52 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet springDispatcher threw exception
org.springframework.beans.NotReadablePropertyException: Invalid property 'aa' of bean class [com.boy.demo.dto.UserDTO]: Bean property 'aa' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:540)
at org.springframework.beans.BeanWrapperImpl.getNestedBeanWrapper(BeanWrapperImpl.java:447)
at org.springframework.beans.BeanWrapperImpl.getBeanWrapperForPropertyPath(BeanWrapperImpl.java:424)
at org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:530)
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:147)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:172)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:192)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:158)
at org.springframework.web.servlet.tags.form.AbstractCheckedElementTag.autogenerateId(AbstractCheckedElementTag.java:80)
at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:136)
at org.springframework.web.servlet.tags.form.AbstractSingleCheckedElementTag.writeTagContent(AbstractSingleCheckedElementTag.java:81)
at org.springframework.web.servlet.tags.form.CheckboxTag.writeTagContent(CheckboxTag.java:51)
at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:90)
at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:77)
at org.apache.jsp.jsp.user.user_005flist_jsp._jspx_meth_form_005fcheckbox_005f0(user_005flist_jsp.java:652)
at org.apache.jsp.jsp.user.user_005flist_jsp._jspService(user_005flist_jsp.java:449)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:236)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.boy.framework.filter.SessionFilter.doFilter(SessionFilter.java:71)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.boy.framework.filter.EncodingFilter.doFilter(EncodingFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
2009-8-10 17:26:53 org.apache.catalina.core.StandardHostValve custom
严重: Exception Processing ErrorPage[exceptionType=javax.servlet.ServletException, location=/jsp/common/error.jsp]
java.lang.IllegalStateException: Cannot reset buffer after response has been committed
at org.apache.catalina.connector.Response.resetBuffer(Response.java:691)
at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:409)
at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:271)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
zhl1015 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hzzhaody 的回复:]
Error Page在IE下不能转发的问题

这是IE自身的设定导致的,经过百度,找到几个解决办法:   
1, IE设定  工具-->Internet选项-->高级--->显示http友好错误信息(取消选择) , 这样就可以了
2, 设置指定错误页页状态为正常,来告诉IE这不是一个服务器错误, 从而不显示IE的自定义错误页 
<%
    response.setStatus(200); // 200 = HttpServletResponse.SC_OK
%>
3, 把错误页做大一点,弄个几百K 就可以显示错误页面 (加一个div块,display设为none就可以了),这个问题比较奇怪.

[/Quote]

我用FireFox3和IE7,都不行~~但这个方法我没有试过,呆会试下~
hzzhaody 2009-08-10
  • 打赏
  • 举报
回复
Error Page在IE下不能转发的问题

这是IE自身的设定导致的,经过百度,找到几个解决办法:
1, IE设定 工具-->Internet选项-->高级--->显示http友好错误信息(取消选择) , 这样就可以了
2, 设置指定错误页页状态为正常,来告诉IE这不是一个服务器错误, 从而不显示IE的自定义错误页
<%
response.setStatus(200); // 200 = HttpServletResponse.SC_OK
%>
3, 把错误页做大一点,弄个几百K 就可以显示错误页面 (加一个div块,display设为none就可以了),这个问题比较奇怪.
believefym 2009-08-10
  • 打赏
  • 举报
回复
楼主的错误信息贴完整点
zhl1015 2009-08-10
  • 打赏
  • 举报
回复
回qq271175778:我贴是主要的,下面是全部的:

<%@ page contentType="text/html;charset=GBK" pageEncoding="GBK" isErrorPage="true"%>
<%@ page import="java.io.ByteArrayOutputStream, java.io.PrintStream"%>
<%String path = request.getContextPath();%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn" />
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="imagetoolbar" content="no">
<title>系统管理平台 --- 错误页面</title>
<link rel="stylesheet" href="<%=path%>/images/default/style.css" />
<script type="text/javascript" src="<%=path%>/js/Common.js"></script>
<script type="text/javascript">
function viewDetailInfo() {
if(document.getElementById("errPageDetail").style.display=="none") {
document.getElementById("errPageDetail").style.display = "block";
} else {
document.getElementById("errPageDetail").style.display = "none";
}
}
</script>
</head>

<body onunload="hiddenWait();">
<%@ include file="/layer.jsp" %>

<%
String msg = "未知错误。";
ByteArrayOutputStream ostr = null;
if(request.getSession().getAttribute("loginDTO") != null) {

Exception e = null;
if(exception != null) {
e = (Exception)exception;

} else if(request.getAttribute("exception") != null) {
e = (Exception)request.getAttribute("exception");

} else if(request.getAttribute("javax.servlet.error.exception") != null) {
e = (Exception)request.getAttribute("javax.servlet.error.exception");

} else if(request.getAttribute("javax.servlet.jsp.jspException") != null) {
e = (Exception)request.getAttribute("javax.servlet.jsp.jspException");

}
if(e != null) {
msg = e.getMessage();
ostr = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(ostr));
}
} else {
msg = "您还没有登陆,或停留时间过长,会话已超时!<br />请重新登陆系统。";
}
%>
<table border="0" width="700" cellspacing="1" cellpadding="1" class="mainTable" style="margin:30px auto 0px;" align="center">
<tr class="subTitle">
<td height="26">提示信息</td>
</tr>
<tr>
<td height="80" align="center" valign="middle">
<table border="0" width="680" cellspacing="0" cellpadding="10">
<tr>
<td width="70" height="90"><img src="<%=path%>/images/default/error.gif" onclick="viewDetailInfo();"></td>
<td width="610" style="color:#f00;"><%=msg%></td>
</tr>
<tr>
<td colspan="2" align="center">
<div id="errPageDetail" style="display:none;">
<%
if(ostr!=null) {
out.println(ostr.toString().replaceAll("\r\n", "<br>").replaceAll("\t", "    "));
}
%>
</div>
</td>
</tr>
</table>

</td>
</tr>
</table>


</body>
</html>
fyjava1984 2009-08-10
  • 打赏
  • 举报
回复
没遇到过
【如鱼饮水】 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhl1015 的回复:]
路径应该没有问题,因为我还有两个配置,是可以进来的:
Java code<error-page><error-code>404</error-code><location>/jsp/common/404.jsp</location></error-page><error-page><exception-type>com.demo.exception.BaseException</exception-type><location>/jsp/common/error.jsp</location></error-page>

error.jsp代码如下:
Java code<%@ page contentType="text/html;charset=GBK" pageEncoding="GBK" isErrorPage="true"%><%@ pageimport="java.io.ByteArrayOutputStream, java.io.PrintStream"%>
String msg="未知错误。";
ByteArrayOutputStream ostr=null;if(request.getSession().getAttribute("loginDTO")!=null) {

Exception e=null;if(exception!=null) {
e= (Exception)exception;

}elseif(request.getAttribute("exception")!=null) {
e= (Exception)request.getAttribute("exception");

}elseif(request.getAttribute("javax.servlet.error.exception")!=null) {
e= (Exception)request.getAttribute("javax.servlet.error.exception");

}elseif(request.getAttribute("javax.servlet.jsp.jspException")!=null) {
e= (Exception)request.getAttribute("javax.servlet.jsp.jspException");

}if(e!=null) {
msg= e.getMessage();
ostr=new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(ostr));
}
}else {
msg="您还没有登陆,或停留时间过长,会话已超时!<br />请重新登陆系统。";
}<%=msg%>
[/Quote]

你jsp页面的标签
《head》《html》哪儿去了?????????????
zhl1015 2009-08-10
  • 打赏
  • 举报
回复
路径应该没有问题,因为我还有两个配置,是可以进来的:
<error-page>
<error-code>404</error-code>
<location>/jsp/common/404.jsp</location>
</error-page>
<error-page>
<exception-type>com.demo.exception.BaseException</exception-type>
<location>/jsp/common/error.jsp</location>
</error-page>


error.jsp代码如下:

<%@ page contentType="text/html;charset=GBK" pageEncoding="GBK" isErrorPage="true"%>
<%@ page import="java.io.ByteArrayOutputStream, java.io.PrintStream"%>
String msg = "未知错误。";
ByteArrayOutputStream ostr = null;
if(request.getSession().getAttribute("loginDTO") != null) {

Exception e = null;
if(exception != null) {
e = (Exception)exception;

} else if(request.getAttribute("exception") != null) {
e = (Exception)request.getAttribute("exception");

} else if(request.getAttribute("javax.servlet.error.exception") != null) {
e = (Exception)request.getAttribute("javax.servlet.error.exception");

} else if(request.getAttribute("javax.servlet.jsp.jspException") != null) {
e = (Exception)request.getAttribute("javax.servlet.jsp.jspException");

}
if(e != null) {
msg = e.getMessage();
ostr = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(ostr));
}
} else {
msg = "您还没有登陆,或停留时间过长,会话已超时!<br />请重新登陆系统。";
}

<%=msg%>
believefym 2009-08-10
  • 打赏
  • 举报
回复
error.jsp页面本身有错吧,贴出来看看?
s_Prince 2009-08-10
  • 打赏
  • 举报
回复
应该是路径问题
【如鱼饮水】 2009-08-10
  • 打赏
  • 举报
回复
是不是路径问题
没找到错误页面

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧