找不到java ArquillianServletRunner
我还有一个不工作的Arquillian测试:
@RunWith(Arquillian.class)
public class SomeTest {
private static final String APPLICATION_XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<application xmlns=\"http://java.sun.com/xml/ns/javaee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd\" version=\"6\">"
+ "<display-name>org.acme.project</display-name></application>";
@Deployment
public static Archive<?> createDeployment() {
EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class);
ear.setApplicationXML(new StringAsset(APPLICATION_XML));
ear.addAsModules(Testable.archiveToTest(ShrinkWrap.create(WebArchive.class)));
return ear;
}
@Test
@Transactional
public void test() throws Exception {
System.out.println("SomeTest.test()");
}
}
该类是以下异常的全部条件:
java.lang.IllegalArgumentException: ArquillianServletRunner not found. Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.
at org.jboss.arquillian.protocol.servlet.ServletUtil.determineBaseURI(ServletUtil.java:64)
at org.jboss.arquillian.protocol.servlet.ServletURIHandler.locateTestServlet(ServletURIHandler.java:60)
at org.jboss.arquillian.protocol.servlet.ServletMethodExecutor.invoke(ServletMethodExecutor.java:84)
at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
....
我看到了其他的问题(比如this one),但它们似乎都在使用Glassfish,而我使用的是managed Wildfly 8.1
尽管如此,由于slf4j已经悄悄地进入了我的依赖列表,我尝试了它的不同版本(1.5.10、1.6.6、1.7.13)
与往常一样,服务器日志(或任何地方)中没有任何迹象表明出现了问题,只有JUnit运行程序(Eclipse和Maven的)抱怨。其他部署的测试运行良好
怎么了
# 1 楼答案
对于每个有同样问题的人。这就是它的工作原理(有关更改,请参见注释):