У меня есть несколько @Stateful
SessionBeans с такими комментариями:
@Stateful
@Remote(AdminFacade.class)
public class TAdminFacadeBean implements TgAdminFacade,Serializable
{
...
}
Теперь я хочу протестировать их с Arquillian (1.0.0.Alpha5), но получаю множество различных ошибок, сообщения могут отличаться, если аннотации @Stateful
или @Stateless
, если добавлено @Named
или если @Remote (и implements
интерфейс) отсутствует.
Шаги для воспроизведения:
- Создание нового проекта Maven с
archetype org.jboss.weld.archetypes: jboss-javaee6-webapp: 1.0.1.CR2
- Возможно, вам потребуется установить jboss.home (см.
readme.txt)
- Измените файл pom.xml и установите файл profiles.profile [id = default] .build.plugins.plugin [artifactId = maven-surefire-plugin] .configuration.skip
в ложь
- Старт JBoss-6.0.0. Финал
- Выполнить тест (должен пройти):
mvn test -Parq-jbossas-remote
Боб, протестированный здесь, является MemberRegistration
:
@Model
public class MemberRegistration
{
...
}
Если вы теперь измените @Model
на @Stateful
, JBoss зацикливается со стековыми трассами, с @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?