1 Reply Latest reply on Feb 4, 2013 5:43 AM by Kamil Roman

    JBAS016000: Failed to setup Weld contexts: javax.naming.NameNotFoundException: BeanManager

    Scott Marshall Newbie

      HI all

       

      I'm new to Arquillian and JBoss, and having mixed success in getting it going. I've got one set of tests that work in one module of a multi module build, but then when I run a different module, it fails.

       

      My test looks like

       

      {code}

      package com.dc123.resource.agent.cache.ws.client;

       

      import java.net.MalformedURLException;

      import java.net.URL;

       

      import javax.inject.Inject;

       

      import junit.framework.Assert;

       

      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.JavaArchive;

      import org.junit.Test;

      import org.junit.runner.RunWith;

      import org.slf4j.Logger;

      import org.slf4j.LoggerFactory;

       

      import com.dc123.resource.agent.cache.util.PropertyReader;

       

      @RunWith(Arquillian.class)

      public class ServiceLocatorPropertiesTest {

       

          private static final Logger log = LoggerFactory.getLogger(ServiceLocatorPropertiesTest.class);

       

          private static final String expectedValue =

                  "http://UNIT_TEST:8680/dc-resmgr-agent-service-container-soap-dev-1.0-SNAPSHOT/ResMgrAgentWebservice?wsdl";

       

          @Deployment

          public static JavaArchive createDeployment() {

              final JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "ServiceLocatorPropertiesTest")

                      .addClasses(PropertyReader.class, ServiceLocatorProperties.class)

                      .addAsResource("client.properties")

                      .addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));

              if (log.isInfoEnabled()) {

                  log.info(jar.toString(true));

              }

              return jar;

          }

       

          @Inject

          private ServiceLocatorProperties serviceLocatorProperties;

       

          @Test

          public void checkStringIsCorrectlyFormed() {

              try {

                  String urlString = serviceLocatorProperties.getWSDL_URL();

                  log.info("UrlString is [{}]", urlString);

                  @SuppressWarnings("unused")

                  URL url = new URL(urlString);

                  Assert.assertTrue("URL correctly formed", Boolean.TRUE);

                  Assert.assertEquals("Should be the same", expectedValue, urlString);

       

              } catch (MalformedURLException e) {

                  Assert.fail("URL should be correctly formed");

              }

          }

      }

       

       

      {code}

       

      When I run it, I get

       

      00:51:25,970 INFO  [org.jboss.as.server] (management-handler-thread - 3) JBAS018559: Deployed "ServiceLocatorPropertiesTest"

      00:51:26,330 ERROR [org.jboss.as.weld] (pool-4-thread-1) JBAS016000: Failed to setup Weld contexts: javax.naming.NameNotFoundException: BeanManager -- service jboss.naming.context.java.module.ServiceLocatorPropertiesTest.ServiceLocatorPropertiesTest.BeanManager

          at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)

          at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)

          at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:123)

          at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)

          at javax.naming.InitialContext.lookup(InitialContext.java:392) [classes.jar:1.6.0_35]

       

      POM file and full log file attached. Any help would be really appreciated.

       

      I'm using @Inject to get the object under test (ServiceLocatorProperties), should I be using Resource(lookup = ....) instead ? I've used @Inject on the other module.

       

      Thanks very much

       

      Scott