2011-11-07 124 views
8

我Weblogic上10.3.3JSF1064“无法找到或服务资源”的警告对JSF 2.0

工作的一个企业项目与Java EE 5和JSF 2.0(钻嘴鱼科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/csssrc/main/resources/js文件夹,并再次,它们正确地加载和可见的页面的源代码。我只是想摆脱我的控制台中的这些警告。

回答

8

java.net.SocketException异常:软件导致连接中止:套接字写入错误

而资源还在忙着下载的连接被中止。例如,当您导航到其他页面时,可能会发生这种情况,或者在浏览器仍在忙于下载所有资源的情况下按下或关闭了浏览器窗口。

我查了钻嘴鱼科源代码,看看在ResourceHandlerImpl#handleResourceRequest()以下两行(292-294在钻嘴鱼科2.1.3):

} catch (IOException ioe) { 
    send404(context, resourceName, libraryName, ioe, true); 
} 

因此,IOException上写的响应被捕获并作为强制处理404。就个人而言,这应该被忽略或由throws IOException委托给servlet容器,不会被强制转换为HTTP 404错误。

我已经报道过这个为issue 2241的Mojarra家伙。在此之前,您无法做任何反对的事情,但可能会很高兴知道当javax.faces.PROJECT_STAGE设置为Production而不是Development时,不会记录这些警告。相反,它将被记录为FINE

+0

This [image](http://i.imgur.com/0m1fU.png)也许可以帮助你更多地找出问题。此外,这只发生在IE9,而不是Chrome浏览器(不知道其他浏览器)...图像中标记为“中止”的请求是导致警告的请求。 –

+2

我仍然看到这个日志PROJECT_STAGE设置为生产 –