2015-01-09 52 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,问题消失了。