由于原始 mojarra 实现中的已知错误,我需要在我的 WAR 文件中捆绑 JSF 实现。
我不允许替换模块中的 JSF 实现,所以我使用的是 useBundledJsf 属性。
运行 Payara 版本:Payara Server 4.1.1.164 #badassfish (build 28) 这个版本应该正确支持 useBundledJsf。
我已将此添加到我的 glassfish-web.xml 中:
<class-loader delegate="false" />
<property name="useBundledJsf" value="true" />
并将 javax.faces 依赖项添加到我的 pom 中:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.13</version>
</dependency>
我收到以下错误,并且所有注射都失败了。
SEVERE: JSF1051: Service entry 'org.glassfish.faces.integration.GlassFishInjectionProvider' does not extend DiscoverableInjectionProvider. Entry will be ignored.
我试图将weld-integration.jar 添加到我的项目中,但它仍然会产生JSF1051 错误,如下所示:
Unable to create a new instance of 'org.jboss.weld.jsf.ConversationAwareViewHandler'
我使用的焊接集成的依赖性:
<dependency>
<groupId>org.glassfish.main.web</groupId>
<artifactId>weld-integration</artifactId>
<version>4.1.2</version>
<exclusions>
<exclusion>
<artifactId>*</artifactId>
<groupId>*</groupId>
</exclusion>
</exclusions>