Tomcat リモート 7 で Arquillian を使用してテストを実行したいと考えています。これは、問題を再現するための非常に簡単な例です。
pom の依存関係:
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<version>1.1.1.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-tomcat-remote-7</artifactId>
<version>1.0.0.CR5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
arqullian.xml :
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="tomcat-remote-7">
<configuration>
<property name="host">localhost</property>
<property name="jmxPort">8089</property>
<property name="bindHttpPort">8080</property>
<property name="user">arquillian</property>
<property name="pass">arquillian</property>
</configuration>
</container>
SimpleTest.java
@RunWith(Arquillian.class)
public class SimpleTest {
@Deployment
@OverProtocol("Servlet 3.0")
public static Archive<WebArchive> createDeployment() {
File warFile = new File("../myproject/target/mywar.war");
WebArchive webArchive = ShrinkWrap.createFromZipFile(WebArchive.class, warFile);
return webArchive;
}
@Test
public void testSimple() {
assertTrue(true);
}
}
SimpleTest を実行すると、長いスタック トレースが表示されます。最終的には次のようになります。
Caused by: java.lang.ClassNotFoundException:
org.jboss.arquillian.container.tomcat.remote_6.TomcatRemoteExtension
依存関係のバージョン 7 にあるのに、バージョン 6 の TomcatRemoteExtension をロードしようとするのはなぜだろうか