1

我试图将一个会话 bean 注入另一个会话 bean(在这种特殊情况下,它是同一个会话 bean),我得到了这个错误:

org.jboss.weld.exceptions.UnsatisfiedResolutionException:WELD-001308 无法解析任何类型的 bean:[接口 com.windriver.dsm.labmanagement.ejb.stub.GeneralSession];绑定:[@javax.enterprise.inject.New(value=com.windriver.dsm.labmanagement.ejb.stub.GeneralSession.class)]

这就是我尝试这样做的方式:

@Stateless
@TransactionManagement(value=TransactionManagementType.CONTAINER)
@TransactionAttribute(value=TransactionAttributeType.REQUIRED)
@Local(GeneralSessionLocal.class)
@Remote(GeneralSession.class)
public class GeneralSessionBean extends CRUDSessionBase
{
    @Inject @New
    Instance<GeneralSession> generalSessionInstance;

    // ...
}

我打电话时收到此错误generalSessionInstance.get();。任何人都可以帮忙吗?

4

2 回答 2

0

尝试指定 bean 类 (GeneralSessionBean) 实现 GeneralSession。

在你的情况下:

@Stateless
@TransactionManagement(value=TransactionManagementType.CONTAINER)
@TransactionAttribute(value=TransactionAttributeType.REQUIRED)
@Local(GeneralSessionLocal.class)
@Remote(GeneralSession.class)
public class GeneralSessionBean extends CRUDSessionBase implements GeneralSession
{
    @Inject @New
    Instance<GeneralSession> generalSessionInstance;

    // ...
}
于 2013-01-13T18:35:34.763 回答
0

根据 WebBeans 规范,远程接口不是对注入有效的 bean 类型。因此,您必须为字段类型采用本地接口(在这种情况下为 GeneralSessionLocal)(并且您还应该实现此接口,因为否则它也不是您的 EJB 的 bean 类型)。

于 2013-01-13T18:46:14.737 回答