Предупреждение JSF1064 "невозможно найти или обслуживать ресурс" в jsf 2.0

Я работаю над корпоративным проектом с Java EE 5 и JSF 2.0 (Mojarra 2.0.3) на Weblogic 10.3.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.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 папки соответственно, и еще раз, они правильно загружаются и отображаются в исходном коде страницы. Я просто хочу избавиться от этих предупреждений в консоли.

1 ответов


java.сеть.SocketException: программное обеспечение вызвало прерывание соединения: ошибка записи сокета

соединение было прервано во время загрузки ресурса. Это может произойти, когда вы, например, перешли на другую страницу или нажали Esc, или закрытое окно браузера, пока браузер все еще занят загрузкой всех ресурсов.

Я проверил исходный код Mojarra и увидел следующее в ResourceHandlerImpl#handleResourceRequest() (линии 292-294 в Mojarra 2.1.3):

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

Итак,IOException при написании ответ был пойман и принудительно обработан как 404. Лично это должно было быть проигнорировано или делегировано servletcontainer throws IOException, не принудительно преобразуется в ошибку HTTP 404.

Я об этом как вопрос 2245 в Mojarra ребята. До тех пор вы ничего не можете сделать против него, но может быть полезно знать, что эти предупреждения не будут регистрироваться, когда javax.faces.PROJECT_STAGE is значение Production вместо Development. Вместо этого он будет зарегистрирован как FINE.