在TomEE 7 Plume中升级JSF库的正确方法是什么?

时间:2016-07-18 15:24:21

标签: jsf updates tomee tomee-7

我看到Mojarra 2.3于6月发布。升级的正确方法是什么?

  • 在我的pom.xml中?基本上我只有

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId> 
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>
    
  • 还是在我的服务器上?我正在使用TomEE 7羽,我应该手动下载JAR,删除lib/tomee-mojarra-7.0.0.jarJSF 2.2 compliant)并将新JAR放在那里?我实际上不确定这是否合适,所以我担心一个等待TomEE更新其库的答案。

1 个答案:

答案 0 :(得分:3)

JSF 2.3尚未发布。最终版本计划于2017年上半年与Java EE 8一起使用。也许您指的是里程碑(beta)版本,应该通过文件名中的mXX后缀来识别,例如{{3} } javax.faces-2.3.0-m06.jar一个。 JSF 2.3目前仍在进行中。例如。仅@Inject FacesContext中添加了<f:websocket>等JSF工件的CDI生成器,新的JSF 2.3 <h:commandScript>仅在current中添加,新的JSF 2.3仅m07 <f:importConstants>已添加到m04,即将发布的pom.xml将包含新的8.0。等等。

基本上,您需要等待Java EE 8发布,并且您的服务器供应商提供Java EE 8兼容服务器。在TomEE的情况下,这将是虚构的未来TomEE 8版本。在这种情况下,您只需升级服务器并将/lib/javax.faces-2.2.12.jar中的Java EE版本更新为faces-config.xml

然而,也可以在服务器中手动升级Mojarra。如何做到这一点取决于使用的服务器。在TomEE 7.0.1 Plume的情况下,理论上应该用更新的java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011) at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006) at org.apache.webbeans.portable.AnnotatedElementFactory.setAnnotatedType(AnnotatedElementFactory.java:154) at org.apache.webbeans.container.BeanManagerImpl.addAdditionalAnnotatedType(BeanManagerImpl.java:1292) at org.apache.webbeans.portable.events.discovery.BeforeBeanDiscoveryImpl.addAnnotatedType(BeforeBeanDiscoveryImpl.java:134) at com.sun.faces.cdi.CdiExtension.beforeBean(CdiExtension.java:95) ... 29 more 文件替换现有的pom.xml文件。从理论上讲,因为当我尝试它时,似乎OpenWebBeans并不喜欢它。部署启用JSF的项目时,我得到了以下异常(只是一个带有空provided文件的空WAR)。

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.faces</artifactId>
    <version>2.3.0-m06</version>
    <scope>provided</scope>
</dependency>

为了弄清楚这是OWB还是Mojarra中的问题,似乎需要做更多的工作。到目前为止,Mojarra的CDI功能仅通过Weld(在GlassFish / Payara和WildFly中)进行了测试。目前,遗憾的是,您还无法在TomEE 7上使用JSF 2.3。

请注意,在这种情况下,编辑{{1}}不是必需的。只有在IDE中调试期间自动连接适当的源时,您才需要显式添加目标范围设置为{{1}}的所需坐标。

{{1}}

这适用于任何Mojarra版本。

另见: