2014-01-22 4 views
0

У меня проблема с запуском jsf + primeface в приложении. В частности у меня есть:java.lang.NumberFormatException at org.mortbay.io.BufferUtil.toLong (BufferUtil.java:106)

primefaces 3.4.1 JSF 2.1.7 AppEngine SDK 1.8.9 Java 7

Я получаю следующее исключение на каждой странице я загрузить. Однако, если я обновляю страницу, она загружается нормально. Я начал эту проблему, только когда перешел на приложение 1.8.9. Раньше я использовал 1.6.6, и все шло гладко.

Я искал вокруг, и кажется, что это обычная проблема. Однако я не нашел никакого решения. У кого-нибудь есть идея? Спасибо

WARNING: /javax.faces.resource/jquery/jquery.js.jsf 
java.lang.NumberFormatException: Wed, 22 Jan 2014 08:35:40 GMT 
    at org.mortbay.io.BufferUtil.toLong(BufferUtil.java:106) 
    at org.mortbay.jetty.HttpFields$Field.getLongValue(HttpFields.java:1479) 
    at org.mortbay.jetty.HttpFields.getLongField(HttpFields.java:720) 
    at org.mortbay.jetty.Request.getIntHeader(Request.java:728) 
    at javax.servlet.http.HttpServletRequestWrapper.getIntHeader(HttpServletRequestWrapper.java:106) 
    at com.google.appengine.tools.development.ResponseRewriterFilter$RequestWrapper.getDateHeader(ResponseRewriterFilter.java:405) 
    at com.sun.faces.application.resource.ResourceImpl.getIfModifiedHeader(ResourceImpl.java:368) 
    at com.sun.faces.application.resource.ResourceImpl.userAgentNeedsUpdate(ResourceImpl.java:345) 
    at com.sun.faces.application.resource.ResourceHandlerImpl.handleResourceRequest(ResourceHandlerImpl.java:255) 
    at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:125) 
    at org.primefaces.application.PrimeResourceHandler.handleResourceRequest(PrimeResourceHandler.java:91) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:591) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 
    at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:487) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
+0

взгляните на мой ответ здесь: http://stackoverflow.com/a/13840191/617373 – Daniel

ответ

0

Программное обеспечение для преобразования чисел зависит от того, насколько мягким или строгим является формат чисел. Один в BufferUtil выглядит жестким и довольно строгим.

Попробуйте выполнить регистрацию или вывод строки, которую вы хотите преобразовать, между некоторыми разделителями и искать другие подозрительные символы, которые могут быть заполнены в вашу строку в результате обновления программного обеспечения. Даже «+» или конечное пространство могут испортить вечеринку.

+0

Спасибо, Мартин. Тем не менее, я не конвертирую любую String ... по крайней мере, намеренно. Я просто хочу загрузить страницу jsf. Самое смешное, что если я обновляю страницу, она загружается, как и ожидалось. – panipsilos

+0

Я рад, что он работает. Причина может быть найдена при просмотре 9 строк по трассе стека, где вызывается getIfModifiedHeader(). Метод BufferUtil.toLong() создал исключение, пытаясь проанализировать неполную измененную дату или время из заголовка HTTP-запроса браузера. Когда вы обновляетесь, браузер генерирует новый заголовок, который BufferUtil.toLong() может анализировать. Задача решена :-) –

Смежные вопросы