1

次のように、スーパークラスに Bean を注入しようとしています。

public class DsmCrudDaoProcuder 
{

    @Produces
    public static DsmCrudDao produceDao(InjectionPoint injectionPoint) {
        return ((CRUDSessionBase)injectionPoint.getBean()).createCrudDao();
    }
}


public abstract class CRUDSessionBase{

    @Resource public SessionContext context;

    protected static Log log = LogFactory.getLog(CRUDSessionBase.class.getName());
    protected static Log logger = LogFactory.getLog(CRUDSessionBase.class.getName());


    @Inject @New
    DsmCrudDao dao;

    /**
     * Get the concrete DAO
     * 
     * @return
     */
    protected abstract DsmCrudDao createCrudDao();



....
}

これは展開時に失敗します:

WELD-001409 注入ポイント [[field] @Inject com.windriver.dsm.ejb.CRUDSessionBase.dao] での修飾子 [@Default] を持つ型 [DsmCrudDao] のあいまいな依存関係。可能な依存関係 [[Managed Bean [class com.windriver.dsm.labmanagement.dao.TECodeCoverageDao] with qualifiers [@Any @Default]]、Managed Bean [class com.windriver.dsm.enterprise.dao.BinaryGroupDao] with qualifiers [@Any] @Default]、修飾子付きマネージド Bean [class com.windriver.dsm.labmanagement.dao.TeBlockCoverageDao] [@Any @Default]、修飾子付きマネージド Bean [class com.windriver.dsm.enterprise.dao.DeviceSupportedServiceDao] [@Any @デフォルト]、 ....

エラーのリストにある Bean はすべて の派生クラスですDsmCrudDao

これを機能させる方法はありますか?

4

0 に答える 0