无法在 Web 领域部署应用程序。但部署在tomcat中

问题描述 投票:0回答:1

我们在 Web sphere liberty 服务器上部署应用程序时遇到错误。相同的应用程序部署在 Tomcat 上。

例外:

启动应用程序 ONNO 时发生异常。异常消息是:com.ibm.ws.container.service.state.StateChangeEx ception: org.jboss.weld.exceptions.DeploymentException: WELD-001414: Bean 名称不明确。名称 requestScope 解析为 bean:[生产者方法 [Map],其限定符 [@RequestMap @Any @Named] 声明为 [[UnbackedAnnotatedMethod] @Produces @RequestMap @Named @FacesScoped public org.apache.myfa ces.cdi.FacesArtifactProducer.getRequestMap()], com.sun.faces.cdi.RequestMapProducer@918359cd]

尝试在websphere上部署。部署在tomcat上成功。

jakarta-ee websphere ejb websphere-liberty myfaces
1个回答
0
投票

根据您部署到哪个 WebSphere 以及您的配置可能会影响特定的问题。然而,这看起来像是一个问题,您的应用程序和 websphere 都提供了 JSF 的实现,这会在执行解析为多个候选者的 bean 查找时导致问题。如果您使用 Tomcat,而不是 TomEE,它不会像 websphere 那样在运行时提供 JSF 实现,因为它是一个 servlet 容器,而 websphere 是一个应用程序服务器(意味着它提供自定义 EE 实现)。在没有看到更多信息的情况下,我只能说这种情况下的解决方案是您可能需要将 JSF 实现从打包到您的应用程序中删除。您需要确保仍然有对 JSF api 的引用以允许应用程序编译。

© www.soinside.com 2019 - 2024. All rights reserved.