2011-11-07 123 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設置爲生產 –