@Specializes - WELD-000047专门的bean必须扩展另一个bean:Managed Bean

时间:2016-05-05 11:56:37

标签: java cdi jboss-arquillian

我对@Specializes注释有些问题。在我的项目中(对JBOSS进行Arquillian测试)我使用@Alternative注释来创建接口的存根。这次我必须创建stub来替换我使用的Specialize annotation的Bean类。 当我运行此测试时出现错误:

  

引起:org.jboss.weld.exceptions.DefinitionException:WELD-000047>专业化bean必须扩展另一个bean:Managed Bean [类com.ericsson.oss.services.security.genericidentitymgmtservice.stubs.CreateAd> ministratorStub]有限定词[@Any @Default]“}}

我发现人们有类似的问题here

我尝试将pom中的焊接版本更改为1.1.112.0.0,但这无济于事。 你能建议我能用这个问题做些什么吗?这是代码示例:

ORGINAL BEAN:

@Startup
@Singleton
public class CreateAdministratorUserBean {

@Inject
private Logger log;

@Inject
private UserManager userManager;

 @PostConstruct
public void createAdministratorUser() throws IOException, InterruptedException {<code>}

private void assignAdministratorRole(User user, String roleName) {<code>}}

BEAN STUB:

@Stateless
@Startup
@Alternative
@Specializes

 public class CreateAdministratorStub extends CreateAdministratorUserBean {

 @Inject
 private Logger log;

 @Inject
 private UserManager userManager;

 @PostConstruct
 public void createAdministratorUser() throws IOException, InterruptedException {<code>}

 @Override
 private void assignAdministratorRole(User user, String roleName) {<another code>}}

我还将我的Stub添加到部署提供程序类中,并添加到beans-ejb.xml作为替代

0 个答案:

没有答案