HKu*_*mar 6 java jboss jsp java-ee
我在Jboss部署的应用程序有以下异常,浏览器是IE8
2012-03-19 09:17:12,014 WARN [org.apache.catalina.core.ContainerBase.jboss.web]. [localhost]] Exception Processing ErrorPage[errorCode=404, location=/internalError.jsp]
ClientAbortException: java.net.SocketException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
Run Code Online (Sandbox Code Playgroud)
似乎浏览器在服务器将internalError.jsp写入它之前关闭了套接字.请建议如何解决它,或至少我如何隐藏此异常.
谢谢Hikumar
Bal*_*usC 18
你无法解决它.在服务器仍在处理HTTP请求/响应时,您无法控制客户端是按Esc,还是仓促单击其他链接,或关闭浏览器,或让其计算机崩溃等等.
您可以通过全局过滤器(映射/*)来"隐藏"它,它执行以下操作:
try {
chain.doFilter(request, response);
}
catch (ClientAbortException e) {
// Ignore.
}
Run Code Online (Sandbox Code Playgroud)
但是,这会在代码中引入servletcontainer-specfic依赖项.有问题的过滤器将导致NoClassDefFoundError不同make的servletcontainer不使用特定于Tomcat的ClientAbortException.您可能希望检查类简单名称.利用它是以下子类的优势IOException:
try {
chain.doFilter(request, response);
}
catch (IOException e) {
if (!e.getClass().getSimpleName().equals("ClientAbortException")) {
throw e;
}
}
Run Code Online (Sandbox Code Playgroud)