在 WebLogic 12 上部署 ear 文件时出现 JSF 错误
Posted
技术标签:
【中文标题】在 WebLogic 12 上部署 ear 文件时出现 JSF 错误【英文标题】:JSF error on deploying ear file on WebLogic 12 【发布时间】:2022-01-12 04:39:23 【问题描述】:我正在使用 Weblogic 12.2.1.4 并在部署我的 ear 文件时遇到以下错误。我的耳朵是用 JSF 2.2 完成的。
Caused by: java.lang.NoSuchMethodError: javax.faces.application.Application.addSearchKeywordResolver(Ljavax/faces/component/search/SearchKeywordResolver;)V
at org.primefaces.util.Jsf23Helper.addSearchKeywordResolvers(Jsf23Helper.java:27)
at org.primefaces.webapp.PostConstructApplicationEventListener.processEvent(PostConstructApplicationEventListener.java:48)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2169)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2142)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:294)
at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:739)
at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:704)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:270)
at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:719)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:251)
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:204)
at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:191)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1929)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3191)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1864)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:919)
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)`enter code here`
【问题讨论】:
【参考方案1】:如果 PrimeFaces 识别出它在 JSF2.3 上运行,则此方法将被调用。 如果此方法不可用,您的类路径中可能有重复的依赖项(或类似 2.3 API 和 2.2 impl)
【讨论】:
【参考方案2】:方法“addSearchKeywordResolver”是 JSF 2.3 规范的一部分。 https://javaee.github.io/javaee-spec/javadocs/javax/faces/component/search/SearchKeywordResolver.html
因此,如果您想使用它,您必须在您的 ear 文件中包含 JSF 2.3 的依赖项。
【讨论】:
以上是关于在 WebLogic 12 上部署 ear 文件时出现 JSF 错误的主要内容,如果未能解决你的问题,请参考以下文章