5 Replies Latest reply on Oct 20, 2012 12:56 PM by Vikas B

    NPE when injecting EJB

    Mylos Kathos Master

      Hi all !

      I'm trying to test a simple EJB out of the container using Arquillian. My goal is to run this example using Eclipse's Junit Test:

      @RunWith(Arquillian.class)

      public class GreeterTest {

          

          @Deployment

          public static JavaArchive createDeployment() {

              return ShrinkWrap.create(JavaArchive.class, "test.jar")

                  .addClasses(HelloWorld.class);

                 

          }

         

          @EJB

          HelloWorld hello;

       

          @Test

          public void should_create_greeting() {

              Assert.assertEquals("Hello Earthling!",

                      hello.sayHello("Earthling"));

              hello.sayHello("Earthling");

          }

      }

      @Stateless

      public class HelloWorld{

      . . . . .

      }

      The issue is that the EJB instance is injected as null when running this example from Eclipse.

       

      am I missing something in pom.xml ? here's my pom.xml file:

      Hope somebody can shed some light on this.

      Thanks

      Mylos


      <?xml version="1.0" encoding="UTF-8"?>

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="

              http://maven.apache.org/POM/4.0.0

              http://maven.apache.org/xsd/maven-4.0.0.xsd">

          <modelVersion>4.0.0</modelVersion>

       

          <groupId>org.arquillian.example</groupId>

          <artifactId>arquillian-example</artifactId>

          <version>1.0-SNAPSHOT</version>

          <packaging>jar</packaging>

       

          <name>arquillian-example</name>

          <url>http://arquillian.org</url>

       

          <properties>

              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

          </properties>

       

          <build>

              <plugins>

                  <plugin>

                      <artifactId>maven-compiler-plugin</artifactId>

                      <version>2.3.2</version>

                      <configuration>

                          <source>1.6</source>

                          <target>1.6</target>

                      </configuration>

                  </plugin>

              </plugins>

          </build>

          <dependencies>

              <dependency>

                  <groupId>org.jboss.spec</groupId>

                  <artifactId>jboss-javaee-6.0</artifactId>

                  <version>1.0.0.Final</version>

                  <type>pom</type>

                  <scope>provided</scope>

              </dependency>

              <dependency>

                  <groupId>junit</groupId>

                  <artifactId>junit</artifactId>

                  <version>4.8.1</version>

                  <scope>test</scope>

              </dependency>

       

              <dependency>

                  <groupId>org.jboss.arquillian.junit</groupId>

                  <artifactId>arquillian-junit-container</artifactId>

                  <version>1.0.0.CR7</version>

                  <scope>test</scope>

              </dependency>

              <dependency>

                  <groupId>org.jboss.arquillian.container</groupId>

                  <artifactId>arquillian-weld-ee-embedded-1.1</artifactId>

                  <version>1.0.0.CR3</version>

                  <scope>test</scope>

              </dependency>

              <dependency>

                  <groupId>org.jboss.weld</groupId>

                  <artifactId>weld-core</artifactId>

                  <version>1.1.5.Final</version>

                  <scope>test</scope>

              </dependency>

              <dependency>

                  <groupId>org.slf4j</groupId>

                  <artifactId>slf4j-simple</artifactId>

                  <version>1.6.4</version>

                  <scope>test</scope>

              </dependency>

          </dependencies>

          <profiles>

              <profile>

                  <id>arquillian-jbossas-remote</id>

                  <dependencies>

                      <dependency>

                          <groupId>org.jboss.spec</groupId>

                          <artifactId>jboss-javaee-6.0</artifactId>

                          <version>1.0.0.Final</version>

                          <type>pom</type>

                          <scope>provided</scope>

                      </dependency>

                      <dependency>

                          <groupId>org.jboss.as</groupId>

                          <artifactId>jboss-as-arquillian-container-remote</artifactId>

                          <version>7.1.1.Final</version>

                          <scope>test</scope>

                      </dependency>

                      <dependency>

                          <groupId>org.jboss.arquillian.protocol</groupId>

                          <artifactId>arquillian-protocol-servlet</artifactId>

                          <scope>test</scope>

                      </dependency>

                  </dependencies>

              </profile>

          </profiles>

      </project>