Java 通过来自不同部署的CDI注入bean

Java 通过来自不同部署的CDI注入bean,java,jboss,cdi,Java,Jboss,Cdi,这可能有点复杂 我有一个EAR和一个WAR并排部署在JBoss7容器中。 EAR有一个带有EJB的service.jar模块,在它的lib文件夹中有另一个实用程序jar。在实用程序jar中有一个资源生产者类,如下所示: public class BaseResources { @Produces private Logger getLogger(InjectionPoint ip) { String category = ip.getMember() .getD

这可能有点复杂

我有一个EAR和一个WAR并排部署在JBoss7容器中。 EAR有一个带有EJB的service.jar模块,在它的lib文件夹中有另一个实用程序jar。在实用程序jar中有一个资源生产者类,如下所示:

public class BaseResources {

@Produces
private Logger getLogger(InjectionPoint ip) {
    String category = ip.getMember()
            .getDeclaringClass()
            .getName();
    return LoggerFactory.getLogger(category);
}
}
现在战争取决于耳朵,它能看到所有的阶级

但是,当我在WAR中尝试将Logger实例注入类时,有一个org.jboss.weld.exceptions.DeploymentException:weld-001408类型[Logger]的未满足依赖项,在注入点抛出了限定符[@Default],告诉我没有要注入的Logger实例


战争中有没有办法将记录器注入类中?

我怀疑这是不可能的,但我希望我错了。战争在耳中吗?记录器是否在ear类中被注入?如果它在ear之外,则不可能。这是两种完全不同的部署。由于类装入器的隔离,这两个部署甚至看不到彼此的类。在这种情况下,您需要使用ear打包war。是否使用jboss-deployment-structure.xml指定war的模块依赖项?