当前位置: 首页 > 面试题库 >

CDI部署失败:WELD-001414 Bean名称不明确

魏鸿
2023-03-14
问题内容

我有一个应用程序,它具有多个模块和各种依赖性。在Glassfish 4上部署应用程序时,出现错误:

org.jboss.weld.exceptions.DeploymentException: WELD-001414 Bean name is ambiguous. 
Name    JerseyClassAnalyzer resolves to beans: [Managed Bean [class org.glassfish.jersey.internal.inject.JerseyClassAnalyzer] 
with qualifiers [@Default @Named @Any], Managed Bean 
[class org.glassfish.jersey.internal.inject.JerseyClassAnalyzer] 
with qualifiers [@Default @Named @Any]]

可能是什么原因?我已经看到了有关此主题,解决方案是编辑注释,但这不是我的EJB,而是依赖项。如何避免这种异常?

我正在将Java EE 6与JDK 1.7和Glassfish 4.0一起使用。


问题答案:

Glassfish已经为您打包了Jerseys库,因此您需要按照docs所述在providedMaven中添加范围。pom.xml

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
</dependency>

如果您使用任何特定于Jersey的功能,则需要直接依赖Jersey。

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.4.1</version>
    <scope>provided</scope>
</dependency>



<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.4.1</version>
    <scope>provided</scope>
</dependency>


 类似资料:
  • 我一直试图解决这里的问题:以前的部署错误,我已经将应用程序代码减少到最小。我仍然有问题将应用程序部署到GlassFish 4。 这里是服务器日志: 我还将应用程序代码推送到了guthub:testfish1代码中 应用程序包括: template.xhtml index.xhtml movietest.java(实体) abstractfacade.java MovieFacaderest.jav

  • 我正在尝试在Heroku上托管Flask web应用程序,同时使用以下步骤来托管我的web应用程序: 在我完成所有这些之后,我的终端绝对没有错误,但是烧瓶应用程序仍然不工作。下面给出了Heroku的日志。 2022-02-12T09:27:20.056100 00:00heroku[router]: at=错误代码=H14 desc="没有web进程运行"方法=GET路径="/"主机=bukkit

  • 我曾尝试使用Wildfly管理控制台(Wildfly 10.1.0.Final)部署我的应用程序,但由于以下原因/错误,不幸失败: 无法上载部署:{"WFLYCTL0080:失败的服务"= 我使用了控制台上提供的替换部署功能。在此之前,我已经使用相同的函数上传了我的. war应用程序,并成功部署。 我已经在本地测试了我的应用程序,它可以在没有任何错误的情况下部署和执行。

  • 我在一个项目中使用全方位。一切都很好。我遇到的问题是我不能测试项目,因为我不能启动TomEE,不管我使用什么方法(EJBContainer、Application ationComposer或Arquillian嵌入式)。 似乎Omniface有豆子问题什么的。我做了一个样本Maven项目https://bitbucket.org/zmirc/tomee-omnifaces-bug 你可以看到,我

  • 问题内容: 我正在为Web服务编写测试客户端。它是使用JSF框架的Netbeans 6.9.1 WebApplication。我有一个调用web服务的托管bean。 一切正常,直到我注意到我的bean类名称中有错字。它是 serviceBean ,我用首字母大写将其重命名为 ServiceBean 。我使用了Netbeans的安全重命名功能,并且文件名和类签名均按预期进行了更改。 但是从那时起,我

  • 我正在使用ApacheTomcat(TomEE)/8.0。29(7.0.0-M1) 从Omnifaces 2.4更改为2.5/2.5后。我得到了这个例外。 ... 更新:它现在与版本2.5.1工作,但我不知道为什么。 也许是这个豆子。xml 我再生到这个豆子。xml