2014-01-22 24 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

我得到每一頁我打開以下例外。但是,如果我刷新頁面,它通常會加載。我只是在遷移到appengine 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

謝謝你馬丁。但是,我不會轉換任何字符串......至少是故意的。我只想加載一個jsf頁面。 有趣的是,如果我刷新頁面,然後按預期加載。 – panipsilos

+0

我很高興它的工作原理。原因可以通過在調用getIfModifiedHeader()的堆棧跟蹤中查看大約9行來找到。 BufferUtil.toLong()方法拋出一個異常,試圖從瀏覽器的HTTP請求頭中解析未完成的修改日期或時間。當您刷新時,瀏覽器會生成一個BufferUtil.toLong()可以解析的新標題。問題解決了 :-) –

相關問題