JSF1064“无法在jsf 2.0上找到或提供资源”警告

时间:2011-11-07 16:58:26

标签: jsf resources jsf-2 weblogic-10.x mojarra

我正在使用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/csssrc/main/resources/js文件夹中,并且再次正确加载并在页面的源代码中可见。我只是想在我的控制台中摆脱这些警告。

1 个答案:

答案 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