您的位置:首页 > 编程语言 > Java开发

java.lang.IllegalStateException 解决办法

2010-08-04 14:24 417 查看
全部异常:

2009-4-15 8:21:17 org.apache.catalina.core.StandardWrapperValve invoke

严重: Servlet.service() for servlet default threw exception

java.lang.IllegalStateException

at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)

at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:707)

at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)

at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:467)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:97)

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:175)

at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:269)

at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:81)

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:286)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Unknown Source)

2009-4-15 8:21:22 org.apache.tomcat.util.http.Parameters processParameters

java.lang.IllegalStateException异常解决办法

最近在使用response.sendRedirect()时出现如下错误:

java.lang.IllegalStateException

org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:423)

经过分析、查看jdk文档终于找到解决的办法,在response.sendRedirect()方法后加return语句即可,如下:

response.sendRedirect("login.jsp");

return;

原因是:在程序中两次调用了response.sendRedirect()方法。

jdk5.0文档中很清楚地介绍了出现IllegalStateException异常的可能情况:

1)同一个页面中再次调用response.sendRedirect()方法。

2)提交的URL错误,即不是个有效的URL。

sendRedirect

void sendRedirect(java.lang.String location)

throws java.io.IOException

Sends a temporary redirect response to the client using the
specified redirect location URL. This method can accept relative URLs;
the servlet container must convert the relative URL to an absolute URL
before sending the response to the client. If the location is relative
without a leading '/' the container interprets it as
relative to the current request URI. If the location is relative with a
leading '/' the container interprets it as relative to
the servlet container root.

If the response has already been committed, this method
throws an IllegalStateException. After using this method, the response
should be considered to be committed and should not be written to.

Parameters:

location - the redirect location URL

Throws:

java.io.IOException - If an input or output exception occurs

java.lang.IllegalStateException - If the response was
committed or if a partial URL is given and cannot be converted into a
valid URL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐