title: Arquillian: Adding beans.xml causes "ArquillianServletRunner not found"
body: <p>I am using Arquillian[1] for testing my J2EE-App in an embedded glassfish environment inside Eclipse[2]-IDE.</p>
  
  <pre><code>package test.java;
  
  import org.jboss.arquillian.container.test.api.Deployment;
  import org.jboss.arquillian.junit.Arquillian;
  import org.jboss.shrinkwrap.api.ArchivePaths;
  import org.jboss.shrinkwrap.api.ShrinkWrap;
  import org.jboss.shrinkwrap.api.asset.EmptyAsset;
  import org.jboss.shrinkwrap.api.spec.WebArchive;
  import org.junit.Assert;
  import org.junit.Test;
  import org.junit.runner.RunWith;
  
  @RunWith(Arquillian.class)
  public class ArquillianTest {
  
      @Deployment
      public static WebArchive createDeployment() {
          return ShrinkWrap.create(WebArchive.class).addAsWebInfResource(EmptyAsset.INSTANCE,
              ArchivePaths.create("beans.xml"));
      }
  
      @Test
      public void test() {
          Assert.assertNull(null);
      }
  }
  </code></pre>
  
  <p>The test executes fine until I add the showed instruction ".addAsWebInfResource(...)". When doing this, following exception is thrown:</p>
  
  <pre><code>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:77)
  at org.jboss.arquillian.container.test.impl.execution.RemoteTestExecuter.execute(RemoteTestExecuter.java:120)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
  at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
  at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
  at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
  at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
  at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
  at org.jboss.arquillian.container.test.impl.execution.ClientTestExecuter.execute(ClientTestExecuter.java:57)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
  at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
  at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
  at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createContext(ContainerEventController.java:142)
  at org.jboss.arquillian.container.test.impl.client.ContainerEventController.createTestContext(ContainerEventController.java:129)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
  at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
  at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:89)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
  at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
  at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
  at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
  at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
  at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
  at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
  at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111)
  at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263)
  at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226)
  at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
  at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
  at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240)
  at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
  at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
  at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
  at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
  at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
  at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
  at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185)
  at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
  at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
  at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
  at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147)
  at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
  at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
  </code></pre>
  
  <p>Without beans.xml, of course, CDI does not work.</p>
  
  <p>How can I avoid this exception?</p>
  
  <p>I have uploaded my pom.xml to <a href="http://pastxt.com/P/7IT1VYWBUW">http://pastxt.com/P/7IT1VYWBUW</a></p>
  
  <p>Environment: jdk1.7.0_02 / Win7 / Eclipse Juno SR1</p>
  
  <p>[1] <a href="https://www.jboss.org/arquillian.html">https://www.jboss.org/arquillian.html</a></p>
  
  <p>[2] <a href="http://www.eclipse.org/">http://www.eclipse.org/</a></p>