简体   繁体   English

初始化CDI Bean名称不明确

[英]Initializing CDI Bean Name Ambiguous

I have a web application running on JSF 2.2 over WebLogic Application server. 我有一个通过WebLogic Application Server在JSF 2.2上运行的Web应用程序。

I have a simple java class and trying to initialize it as an ApplicationScoped object using CDI. 我有一个简单的Java类,并尝试使用CDI将其初始化为ApplicationScoped对象。 The below code works fine and gets deployed. 下面的代码可以正常工作并得到部署。

import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class AppContext {
    public AppContext() {
    }
}

However when I try to initialize the object with @Named annotation, it fails to deploy what so ever 但是,当我尝试使用@Named注释初始化对象时,它无法部署以往的任何东西

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;

@Named
@ApplicationScoped
public class AppContext {
    public AppContext() {
    }
}

The exception log is as below: 异常日志如下:

weblogic.management.DeploymentException: CDI deployment failure:WELD-001414: Bean name is ambiguous. Name appContext resolves to beans: [Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named], Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named]]:org.jboss.weld.exceptions.DeploymentException:WELD-001414: Bean name is ambiguous. Name appContext resolves to beans: [Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named], Managed Bean [class beans.AppContext] with qualifiers [@Default @Any @Named]]
    at org.jboss.weld.bootstrap.Validator.validateBeanNames(Validator.java:641)
    at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:487)
    at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:446)
    at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:90)
    at com.oracle.injection.provider.weld.WeldInjectionContainer.start(WeldInjectionContainer.java:150)
    Truncated. see log file for complete stacktrace

Also WEB-INF\\beans.xml is as follows: 同样,WEB-INF \\ beans.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

Application Running On: 正在运行的应用程序:

JDK 1.8 b121;
Mojarra JSF 2.2;
WebLogic 12.2.1.1;

Any hint on fixing this issue is highly appreciated. 非常感谢您提供解决此问题的任何提示。

I was able to deploy eventually. 我最终得以部署。

However, I had to remove the WAR from EAR and deploy it separately. 但是,我不得不从EAR中删除WAR并单独部署。 For some reason, packaging the WAR in the EAR and deploying fails. 由于某些原因,将WAR打包在EAR中并部署失败。 Not sure if this is an issue with WebLogic or EAR configuration. 不确定这是WebLogic还是EAR配置问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM