我正在尝试将会话bean注入另一个会话bean(在这种特殊情况下它是相同的会话bean),我收到此错误:
org.jboss.weld.exceptions.UnsatisfiedResolutionException:WELD-001308 无法解析类型的任何bean:[interface com.windriver.dsm.labmanagement.ejb.stub.GeneralSession];绑定: [@ javax.enterprise.inject.New(值= 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();
时收到此错误消息。有人可以帮忙吗?
答案 0 :(得分: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;
// ...
}
答案 1 :(得分:0)
根据WebBeans规范,远程接口不是bean类型,它对注入有效。因此,您必须使用本地接口(在本例中为GeneralSessionLocal)作为字段类型(并且您还应该实现此接口,因为否则它也不是EJB的bean类型。)