DeploymentException:使用扩展类时注入时为WELD-001408

时间:2015-01-30 09:30:24

标签: java-ee dependency-injection cdi jboss-weld

我有以下DBO:

public abstract class DetailDbo{
    ....
}

public abstract class MasterDbo<T>{
    ....
}

public class B extends DetailDbo{
    ....
}

public class A extends MasterDbo<B>{
    ....
}

我的服务:

@Stateless
@LocalBean
public class MyService<T extends MasterDbo<D>, D extends DetailDbo>{
    //implemetation
}

我的豆子:

public class MyBean<T extends MasterDbo<D>, D extends DetailDbo>{

    @Inject
    protected MyService<T, D>   ws;

    ...
}

扩展bean:

SpecialBean extends MyBean<A, B>{
    //implemetation
}

在注射点我得到以下异常:

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [MyService<A, B>] with qualifiers [@Default] at injection point [[field] @Inject protected com.xxx.xx.MyBean.ws]

为什么我收到此错误?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

祝贺你!您刚刚在Weld发现了一个错误:https://issues.jboss.org/browse/WELD-1855

在等待修复时,您可以使用此解决方法。将EJB更改为:

@Stateless
@LocalBean
public class MyService<T extends MasterDbo<? extends DetailDbo>, D extends DetailDbo>{
    //implemetation
}

它应该有用。