Ok, I've created integration-tests module to split the Arquillian from ear module build. The integration-tests in a similar manner to ear module starts JBoss AS, and deploys the EAR before running integration tests. The EAR deployed successfully. The Arquillian tests failed with java.lang.IllegalStateException: Error launching test at http://localhost:8080/test/ArquillianServletRunner?outputMode=serializedObject&className=com.objective.ens.PersistenceContextTestCase&methodName=testInitialContext. Got 500 (Internal Server Error).
The JBoss AS log contains following error:
[12:33:39.219][info][talledLocalContainer] 12:33:39,219 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/test
[12:33:39.375][info][talledLocalContainer] 12:33:39,370 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/test].[ServletTestRunner]] Servlet.service() for servlet ServletTestRunner threw exception: java.lang.ClassNotFoundException: com.thoughtworks.qdox.model.AbstractInheritableJavaEntity from BaseClassLoader@233374b0{vfs:///C:/CHECKOUT/ens/enterprise-search/integration-tests/target/AppServer/server/standard/deploy/test.war}
[12:33:39.375][info][talledLocalContainer] at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:480) [jboss-classloader.jar:2.2.0.GA]
[12:33:39.375][info][talledLocalContainer] at java.lang.ClassLoader.loadClass(ClassLoader.java:248) [:1.6.0_21]
[12:33:39.375][info][talledLocalContainer] at org.testng.TestNG.initializeAnnotationFinders(TestNG.java:751) [:]
[12:33:39.375][info][talledLocalContainer] at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:892) [:]
[12:33:39.375][info][talledLocalContainer] at org.testng.TestNG.runSuitesLocally(TestNG.java:876) [:]
[12:33:39.375][info][talledLocalContainer] at org.testng.TestNG.run(TestNG.java:784) [:]
[12:33:39.376][info][talledLocalContainer] at org.jboss.arquillian.testng.TestNGTestRunner.execute(TestNGTestRunner.java:54) [:]
[12:33:39.376][info][talledLocalContainer] at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(ServletTestRunner.java:84) [:]
[12:33:39.376][info][talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [:1.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]
[12:33:39.376][info][talledLocalContainer] at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
However, QDox wasn't used by our EAR at all. Thre only trace to QDox is that JBoss AOP uses it:
+- org.jboss.jbossas:jboss-as-client:pom:6.0.0.Final:test
| +- oswego-concurrent:concurrent:jar:1.3.4-jboss-update1:test
| +- org.jboss.aop:jboss-aop:jar:client:2.2.1.GA:test
| | +- xml-apis:xml-apis:jar:1.3.04:test
| | +- org.apache.ant:ant:jar:1.7.1:test (version managed from 1.8.0)
| | | \- org.apache.ant:ant-launcher:jar:1.7.1:test
| | +- javassist:javassist:jar:3.12.1.GA:test (version managed from 3.12.0.GA)
| | +- org.jboss.classpool:jboss-classpool-scoped:jar:1.0.0.Alpha6:test
| | +- org.jboss.classpool:jboss-classpool:jar:1.0.0.Alpha6:test
| | +- org.jboss:jboss-reflect:jar:2.2.0.Alpha5:test
| | +- qdox:qdox:jar:1.6.1:test
| | \- trove:trove:jar:1.0.2:test
Aslak, do you know if it is something to do with jboss-as-client version declared?
Thanks,
Sergiy
P.S. jboss-as-client declared in POM as following:
<dependency>
<groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-client</artifactId>
<version>6.0.0.Final</version>
<type>pom</type>
<scope>test</scope>
</dependency>
P.S.S Explicitly including qdox to the integration-tests module does not respolve the issue.