возможно ли использовать метод производителя CDI, определенный в модуле A, для внедрения CDI в компонент во втором модуле B?
Есть ли какое-нибудь описание связи между CDI и системой модулей JBoss?
В производителе.jar:
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
import java.util.logging.Logger;
public class Producer {
@Produces
public static Logger produceLog(InjectionPoint injectionPoint) {
return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
}
}
В потребителя. Война:
import javax.inject.Inject;
import java.util.logging.Logger;
public class Consumer {
@Inject
Logger logger;
public void doLog() {
logger.info("Hello CDI with JBoss Modules");
}
}
модуль B имеет Манифест-Зависимость от модуля A:
Manifest-Version: 1.0
Dependencies: deployment.producer.jar
этот подход приводит к проблеме зависимости неудовлетворенного сварного шва:
"JBAS014671: Failed services" => {"jboss.deployment.unit.\"consumer.war\".WeldService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"consumer.war\".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject question.Consumer.logger]"
Я разместил пример проекта на Github: https://github.com/sistar/jboss-cdi-demo
ТИА
Ralf