ArquillianServletRunner not found
denis_k Jun 7, 2011 10:32 AMHello,
I have deployment method that creates an application from existing EAR file:
@Deployment
public static EnterpriseArchive createDeployment() {
EnterpriseArchive ear = ShrinkWrap.createFromZipFile(EnterpriseArchive.class,
new File("/home/denisk/dev/MO/MO/target/MO-1.0.1-alpha1-SNAPSHOT-edited.ear"));
System.out.println(ear.toString(true));
return ear;
}
I then deploy this EAR into remote GlassFish 3.1. In server.log I can see that the application gets deployed fine. But in my test I get this error:
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:63)
at org.jboss.arquillian.protocol.servlet.BaseServletProtocol.getExecutor(BaseServletProtocol.java:56)
at org.jboss.arquillian.protocol.servlet.BaseServletProtocol.getExecutor(BaseServletProtocol.java:30)
at org.jboss.arquillian.impl.execution.RemoteTestExecuter.getContainerMethodExecutor(RemoteTestExecuter.java:105)
at org.jboss.arquillian.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:96)
...
In ServletUtil.determineBaseURI I can see the following code:
HTTPContext context = metaData.getContext(HTTPContext.class);
Servlet servlet = context.getServletByName(ServletMethodExecutor.ARQUILLIAN_SERVLET_NAME);
if(servlet != null)
{
...
}
else
{
throw new IllegalArgumentException(
ServletMethodExecutor.ARQUILLIAN_SERVLET_NAME + " not found. " +
"Could not determine ContextRoot from ProtocolMetadata, please contact DeployableContainer developer.");
}
So my servlet is null. But what is strange, there are no servlets at all in HTTPContext (I assume all application's servlets must be there, and it has number of them).
What may cause the problem?