2015-01-09 54 views
4

我正在將我的應用程序升級到primefaces 5.1和Mojarra javax.faces 2.1.29版本。在我當時使用JDK 1.7之前,我沒有收到任何錯誤。 爲了與客戶端環境兼容,我更改了weblogic JDK運行時和我的Eclipse編譯器,以設置 JDK 1.6,並且我得到的error.Is任何人都面臨同樣的問題?我是否需要使用鑽嘴魚科2.1.28或2.1.27的下 版本的JDK 1.6Mojarra 2.1.29與JDK 1.6不兼容

Jan 6, 2015 2:12:17 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException 
SEVERE: Error Rendering View[/myHTML.xhtml] 
java.util.ConcurrentModificationException 
       at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:373) 
       at java.util.LinkedHashMap$EntryIterator.next(LinkedHashMap.java:392) 
       at java.util.LinkedHashMap$EntryIterator.next(LinkedHashMap.java:391) 
       at java.util.AbstractMap.equals(AbstractMap.java:420) 
       at java.util.Collections$SynchronizedMap.equals(Collections.java:2020) 
       at com.sun.faces.context.SessionMap.put(SessionMap.java:138) 
       at com.sun.faces.context.SessionMap.put(SessionMap.java:61) 
       at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:243) 
       at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122) 
       at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:113) 
       at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225) 
       at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:464) 
       at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125) 
       at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) 
       at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
       at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 
       at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 
       at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 
       at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) 
       at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) 
       at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
       at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:105) 
       at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
       at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
       at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
       at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
       at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
       at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
       at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
+0

該文本意味着您將PrimeFaces升級到5.1並將JDK降級到1.6。這個JDK迴歸不應該是上述問題,但PrimeFaces升級應該是。什麼版本的PrimeFaces之前?最新版本的PrimeFaces - 5.1應該與JSF 2.1.x幾乎不兼容(不確定)。至少應該期待JSF 2.2.x. – Tiny

+1

在primefaces版本5.0之前。應用程序與Primefaces 5.1,JSF 2.1.28和JDK 1.6一起工作良好。如果應用程序使用primefaces 5.1,JSF 2.1.29和JDK 1.6,那麼這個錯誤即將到來。所以我認爲問題在於JSF 2.1.29版本與JDK 1.6 – priya

+0

[在PrimeFaces 5.1用戶指南](http://www.primefaces.org/documentation.html)中提到,「* PrimeFaces只需要一個JAVA 5+運行時和一個JSF 2.x實現作爲強制性依賴關係。某些特性如commons-fileupload,commons-io ... *和「* PrimeFaces支持JSF 2.0,2.1和2.2運行時同時使用特徵檢測並且沒有編譯時間依賴於特定的版本,因此一些功能僅在運行時纔可用*「。未完待續。 – Tiny

回答

1

它真的很奇怪,但你是對的。這是JDK版本的問題。在我的情況下,我在Glassfish 3.1.2-11上使用JDK 1.6.0-30,JSF 2.1.29時遇到了同樣的錯誤。

在您的建議後,我將JDK更改爲1.7.0-45,問題消失了。