0 Replies Latest reply on Oct 25, 2013 2:43 PM by dcrissman

    NullPointerException while following "Getting Started" tutorial

    dcrissman

      I am evaluating arquillian and following http://arquillian.org/guides/getting_started/ to learn about it. I am getting a NPE when GreeterTest attempts to use the @Inject(ed) Greeter parameter. Not sure what I am doing wrong, but seem like DI isn't working.

       

      Note: I had to add javax.ejb-api, validation-api & javax.el-api maven dependencies myself as they were not in the tutorial.

       

      Any help getting this to work would be appreciated.

       

      package org.arquillian.example;
      
      import java.io.PrintStream;
      
      /**
      * A component for creating personal greetings.
      */
      public class Greeter {
          public void greet(PrintStream to, String name) {
              to.println(createGreeting(name));
          }
      
          public String createGreeting(String name) {
              return "Hello, " + name + "!";
          }
      }
      

       

      package org.arquillian.example;
      
      import org.jboss.arquillian.container.test.api.Deployment;
      import org.jboss.arquillian.core.api.annotation.Inject;
      import org.jboss.arquillian.junit.Arquillian;
      import org.jboss.shrinkwrap.api.ShrinkWrap;
      import org.jboss.shrinkwrap.api.asset.EmptyAsset;
      import org.jboss.shrinkwrap.api.spec.JavaArchive;
      import org.junit.Assert;
      import org.junit.Test;
      import org.junit.runner.RunWith;
      
      @RunWith(Arquillian.class)
      public class GreeterTest {
      
          @Deployment
          public static JavaArchive createDeployment() {
              return ShrinkWrap.create(JavaArchive.class)
                      .addClass(Greeter.class)
                      .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
          }
      
          @Inject
          Greeter greeter;
      
          @Test
          public void should_create_greeting() {
              Assert.assertEquals("Hello, Earthling!",
                      greeter.createGreeting("Earthling"));
              greeter.greet(System.out, "Earthling");
          }
      }
      

       

      <?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-tutorial</artifactId>
          <version>1.0-SNAPSHOT</version>
          <packaging>jar</packaging>
      
          <name>arquillian-tutorial</name>
          <url>http://maven.apache.org</url>
      
          <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          </properties>
      
          <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>org.jboss.arquillian</groupId>
                      <artifactId>arquillian-bom</artifactId>
                      <version>1.1.1.Final</version>
                      <scope>import</scope>
                      <type>pom</type>
                  </dependency>
              </dependencies>
          </dependencyManagement>
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>2.3.2</version>
                      <configuration>
                          <source>1.6</source>
                          <target>1.6</target>
                      </configuration>
                  </plugin>
                  <plugin>
                      <artifactId>maven-surefire-plugin</artifactId>
                      <version>2.12</version>
                  </plugin>
              </plugins>
          </build>
          <dependencies>
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.8.1</version>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>org.mockito</groupId>
                  <artifactId>mockito-all</artifactId>
                  <version>1.8.5</version>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>org.hamcrest</groupId>
                  <artifactId>hamcrest-integration</artifactId>
                  <version>1.2.1</version>
              </dependency>
              <dependency>
                  <groupId>net.avh4.util</groupId>
                  <artifactId>imagecomparison</artifactId>
                  <version>0.0.2</version>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>org.jboss.arquillian.junit</groupId>
                  <artifactId>arquillian-junit-container</artifactId>
                  <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>
             
              <dependency>
                  <groupId>javax.ejb</groupId>
                  <artifactId>javax.ejb-api</artifactId>
                  <version>3.2</version>
              </dependency>
              <dependency>
                  <groupId>javax.validation</groupId>
                  <artifactId>validation-api</artifactId>
                  <version>1.1.0.Final</version>
              </dependency>
              <dependency>
                  <groupId>javax.el</groupId>
                  <artifactId>javax.el-api</artifactId>
                  <version>3.0.0</version>
              </dependency>
          </dependencies>
      </project>