1

セッションBeanを別のセッションBean(この特定の場合は同じセッションBean)に注入しようとしていますが、次のエラーが発生します。

org.jboss.weld.exceptions.UnsatisfiedResolutionException:WELD-001308タイプのBeanを解決できません:[interface 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

WebBeansの仕様によると、リモートインターフェイスはインジェクションに有効なBeanタイプではありません。したがって、フィールドタイプのローカルインターフェイス(この場合はGeneralSessionLocal)を使用する必要があります(このインターフェイスも実装する必要があります。そうしないと、EJBのBeanタイプでもないためです)。

于 2013-01-13T18:46:14.737 に答える
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 に答える