私は@Stateful
このように注釈が付けられたいくつかのSessionBeanを持っています:
@Stateful
@Remote(AdminFacade.class)
public class TAdminFacadeBean implements TgAdminFacade,Serializable
{
...
}
今度はArquillian(1.0.0.Alpha5)でテストしたいのですが、さまざまなエラーが発生します。アノテーションが@Stateful
または@Stateless
、@Named
追加されているか、@ Remote(およびimplements
インターフェイス)がない場合、メッセージは異なります。
再現する手順:
- アーキタイプorg.jboss.weld.archetypes:jboss-javaee6-webapp:1.0.1.CR2を使用して新しいMavenプロジェクトを作成します
- jboss.homeを設定する必要がある場合があります(readme.txtを参照)
- pom.xmlを変更し、profiles.profile [id = default] .build.plugins.plugin [artifactId =maven-surefire-plugin].configuration.skipをfalseに設定します
- JBoss-6.0.0.Finalを起動します
- テストを実行します(合格する必要があります):
mvn test -Parq-jbossas-remote
ここでテストされたBeanは次のMemberRegistration
とおりです。
@Model
public class MemberRegistration
{
...
}
ここでに変更@Model
すると@Stateful
、JBossはstacktracesでループし、次の@Named @Stateful
エラーが発生します。
java.lang.IllegalArgumentException: ArquillianServletRunner not found.
Could not determine ContextRoot from ProtocolMetadata, please contact
DeployableContainer developer.
@Named @Stateless
:
javax.transaction.NotSupportedException: BaseTransaction.checkTransactionState
- ARJUNA-16051 thread is already associated with a transaction!
@Stateful
ArquillianでBean をテストするにはどうすればよいですか?