11

Weblogic10.3.3でJavaEE5とJSF2.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フォルダにあり、ここでも正しく読み込まれ、ページのソースコードに表示されます。コンソールでこれらの警告を取り除きたいだけです。

4

1 に答える 1

10

java.net.SocketException:ソフトウェアが原因で接続が中止されました:ソケット書き込みエラー

リソースのダウンロードがまだビジー状態のときに、接続が中止されました。これは、たとえば、別のページに移動したり、 Escキーを押したり、ブラウザがすべてのリソースのダウンロードでビジー状態のときにブラウザウィンドウを閉じたりした場合に発生する可能性があります。

Mojarraのソースコードを確認したところ、ResourceHandlerImpl#handleResourceRequest()(Mojarra 2.1.3の292〜294行目)に次のように表示されています。

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

したがって、書き込み時に応答がキャッチされ、404として強制的に処理されます。個人的には、これは無視されるか、HTTP 404エラーに強制的に変換されるのではなく、IOExceptionによってservletcontainerに委任される必要があります。throws IOException

私はこれを問題2245としてMojarraの人たちに報告しました。それまでは、それに対して何もすることはできませんが、がの代わりににjavax.faces.PROJECT_STAGE設定されている場合、これらの警告はログに記録されないことを知っておくとよいでしょう。代わりに、としてログに記録されます。ProductionDevelopmentFINE

于 2011-11-07T17:13:39.740 に答える