我对@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.11
或2.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
作为替代