WAR에서 사용해야하는 EJB 3.1과 JAR을했습니다. JAR과 WAR는 모두 동일한 JBoss (AS 7.1)에 별도로 배포됩니다. 내가 전쟁에서 CDI 콩 중 하나에 EJB를 주입 할 때이 오류가있어 :WELD-001408 : JAR에서 WAR로 EJB를 주입하려고합니다
16:45:19,003 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.unit."TEST_WEB.war".WeldService: org.jboss.msc.service.StartException in service jboss.deployment.unit."TEST_WEB.war".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [TestSessionEJBLocal] with qualifiers [@Default] at injection point [[field] @Inject cz.pfreiberg.test.view.portlet.ViewPortlet.testBean]
at org.jboss.as.weld.services.WeldService.start(WeldService.java:83)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [TestSessionEJBLocal] with qualifiers [@Default] at injection point [[field] @Inject cz.pfreiberg.test.view.portlet.ViewPortlet.testBean]
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:275)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:244)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:107)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:127)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:346)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:331)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:366)
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:83)
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76)
보기 내 현재 지점에서 @Inject가 EJB를 참조하지 않습니다,하지만 난 전쟁 (수동 JNDI 룩업을 사용하는 경우)이 bean의 인스턴스를 얻을 수있다. @Inject 어노테이션으로 다른 JAR에서 EJB를 주입 할 수 있습니까? WAR에서
클래스 (CDI 콩) JAR에서 어떤 @Inject EJB : 나는 로컬 및 원격 인터페이스 @Inject하기 위해 노력하고있어 JAR에서
@Model
public class ViewPortlet implements Serializable {
@Inject
TestSessionEJBLocal testBean;
}
EJB 클래스 :
@Stateless
public class TestSessionEJBBean implements TestSessionEJB, TestSessionEJBLocal
어떤 아이디어 주셔서 감사합니다.
JAR과 WAR 모두에 beans.xml이 있습니까? – jpkrohling
예, 가지고 있습니다 (JAR 용 META-INF에 하나, WAR 용 WEB-INF에 하나). 사양에 따르면 선택 사항입니다. –