我正在使用Weblogic 10.3.3上的Java EE 5和JSF 2.0(Mojarra 2.0.3)开展企业项目
我没有错误,但在浏览我的应用程序时,我的控制台发出了非常烦人的警告。
每当我在JSF中执行重定向时,我都会在控制台中收到以下表单的警告:
Nov 7, 2011 5:36:46 PM com.sun.faces.application.resource.ResourceHandlerImpl logMissingResource
WARNING: JSF1064: Unable to find or serve resource, images/jquery-theme/ui-icons_cc0000_256x240.png.
Nov 7, 2011 5:36:46 PM com.sun.faces.application.resource.ResourceHandlerImpl logMissingResource
WARNING:
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at weblogic.servlet.internal.ChunkOutput.writeChunkTransfer(ChunkOutput.java:507)
at weblogic.servlet.internal.ChunkOutput.writeChunks(ChunkOutput.java:486)
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:382)
at weblogic.servlet.internal.ChunkOutput$2.checkForFlush(ChunkOutput.java:580)
at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:306)
at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:146)
at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:138)
at java.nio.channels.Channels$WritableByteChannelImpl.write(Channels.java:275)
at com.sun.faces.application.resource.ResourceHandlerImpl.handleResourceRequest(ResourceHandlerImpl.java:277)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
但在我的应用程序中,资源显示正确。当图像加载没有问题时,我不知道为什么会显示此警告。我在icefaces论坛上看到它可能与<h:outputScript/>
或<h:outputStylesheet/>
标签有关。
这是我对这些标签的使用:
<h:outputStylesheet name="jquery-theme/jquery-ui-1.8.16.custom.css" library="css"/>
和
<h:outputScript name="jquery-ui-1.8.16.custom.min.js" library="js"/>
这些文件分别位于src/main/resources/css
和src/main/resources/js
文件夹中,并且再次正确加载并在页面的源代码中可见。我只是想在我的控制台中摆脱这些警告。
答案 0 :(得分:8)
java.net.SocketException:软件导致连接中止:套接字写入错误
当资源仍在忙于下载时,连接中止。例如,当您浏览到其他页面,或按下 Esc ,或者在浏览器仍在忙于下载所有资源时关闭浏览器窗口时,就会发生这种情况。
我检查了Mojarra源代码,并在ResourceHandlerImpl#handleResourceRequest()
(Mojarra 2.1.3中的第292-294行)中看到以下内容:
} catch (IOException ioe) {
send404(context, resourceName, libraryName, ioe, true);
}
因此,写入响应的IOException
已被捕获并被强制处理为404.就个人而言,这应该被throws IOException
忽略或委托给servletcontainer,而不是强制转换为HTTP 404错误。
我已将此报告为issue 2245 Mojarra家伙。在那之前,你不能对它做任何事情,但是当javax.faces.PROJECT_STAGE
设置为Production
而不是Development
时,知道不会记录这些警告可能会很好。 。相反,它将记录为FINE
。