WELD使用SLSB接口时出现异常

时间:2013-01-12 07:45:29

标签: jboss7.x cdi jboss-weld


我有一个基于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;

}

任何帮助我该如何解决这个问题?非常感谢!

1 个答案:

答案 0 :(得分:1)

你可以使用@Typed(OrderService),你应该做得很好。这会更改该bean的元数据,而不是接口类型,CDI会将您的EJB识别为具体类型。