我有一个基于Java EE 6 CDI的应用程序在JBoss AS 7.1.1上运行,它也包含一些会话Bean。
@Stateless
public class OrderService {
@Inject
private Logger log;
@Inject
private EntityManager em;
. . . . .
}
一切正常,直到我不得不将我的SLSB作为SOAP Web服务公开。所以我必须提供一个接口并声明Web服务:
@Stateless
@Remote(OrderServiceItf.class)
@WebService
public class OrderService implements OrderServiceItf {
@Inject
private Logger log;
@Inject
private EntityManager em;
. . . . .
}
@WebService
public interface OrderServiceItf {
. . . .
}
不幸的是,一旦我部署了应用程序,我就会在使用此Bean时获得以下WELD异常: org.jboss.weld.exceptions.DeploymentException:WELD-001408类型[OrderService]在注入点[[field] @Inject com.telco.service.SendMessageService.orderService]上有限定符[@Default]的不满意依赖关系
public class SendMessageService implements Serializable {
@Inject
private Logger logger;
int money;
@Inject OrderService orderService;
}
任何帮助我该如何解决这个问题?非常感谢!
答案 0 :(得分:1)
你可以使用@Typed(OrderService)
,你应该做得很好。这会更改该bean的元数据,而不是接口类型,CDI会将您的EJB识别为具体类型。