我有几个@Stateful
SessionBeans注释如下:
@Stateful
@Remote(AdminFacade.class)
public class TAdminFacadeBean implements TgAdminFacade,Serializable
{
...
}
现在我想用Arquillian(1.0.0.Alpha5)测试它们,但是得到很多不同的错误,如果注释是@Stateful
或@Stateless
,如果{{1},则消息会有所不同添加或者如果没有@Remote(和@Named
接口)。
重现的步骤:
implements
此处测试的bean ist mvn test -Parq-jbossas-remote
:
MemberRegistration
如果您现在将@Model
public class MemberRegistration
{
...
}
更改为@Model
,JBoss将使用堆栈跟踪进行循环,并显示@Stateful
此错误:
@Named @Stateful
java.lang.IllegalArgumentException: ArquillianServletRunner not found.
Could not determine ContextRoot from ProtocolMetadata, please contact
DeployableContainer developer.
:
@Named @Stateless
如何用Arquillian测试我的javax.transaction.NotSupportedException: BaseTransaction.checkTransactionState
- ARJUNA-16051 thread is already associated with a transaction!
豆?
答案 0 :(得分:4)
我一遍又一遍地解决这个问题,我找到了解决方案。即使我讨厌回答我自己的问题,我希望这可以在将来帮助某人。
@Stateful
会话bean的注释(在问题的顶部)是正确的并且保持不变。在Arquillian测试案例中,bean最初注入了
@Inject MemberRegistration memberRegistration;
这适用于@Model
bean,但不适用于@Stateful
会话bean和@Remote
接口。似乎必须注入这种豆类
@EJB private AdminFacade adminBean;