当我在Payara Server 5.191中部署示例应用程序时,出现异常
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.primefaces.expression.impl.Jsf23WidgetVarSearchKeywordResolver.resolve(Ljavax/faces/component/search/SearchKeywordContext;Ljavax/faces/component/UIComponent;Ljava/lang/String;)V" the class loader (instance of org/glassfish/web/loader/WebappClassLoader) of the current class,org/primefaces/expression/impl/Jsf23WidgetVarSearchKeywordResolver,and its superclass loader (instance of org/apache/felix/framework/BundleWiringImpl$BundleclassLoader),have different Class objects for the type javax/faces/component/UIComponent used in the signature
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:136)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:294)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:357)
at com.sun.enterprise.v3.server.ApplicationLifecycle.initialize(ApplicationLifecycle.java:530)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:542)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:557)
这是使用useBundledJsf属性的glassfish-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<class-loader delegate="false"/>
<property name="useBundledJsf" value="true" />
</glassfish-web-app>
Pom.xml中的依赖项
<dependencies>
<!-- primefaces -->
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>7.0</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>primefaces-extensions</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.primefaces.themes</groupId>
<artifactId>all-themes</artifactId>
<version>1.0.10</version>
</dependency>
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>omnifaces</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.14</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
我正在尝试将Mojarra版本降级到2.2.14。
以上配置可在4.1.2.191中部署,但会引发javax.el.PropertyNotFoundException:无法到达目标,标识符'someBean'解析为null错误,如此处所述:https://github.com/eclipse-ee4j/mojarra/issues/4186