3 Replies Latest reply on Dec 6, 2012 9:55 AM by Marko Lukša

    How to use dependency injection in an Enterprise application? From EAR module to WAR?

    Vinícius Abreu de França Newbie

      I created a preset default Maven Enterprise Application in Netbeans and I'm trying inject in a class of the module war (web context) a DAO of EJB module (EJB context) and I can not.

      A similar question is in https://community.jboss.org/message/725092#725092 and I already do all e already I've read about classloaders as mandated but could not yet.

      I already have beans.xml in the WEB-INF directory of the web module and too in META-INF of ejb module.



      Regra Class (ejb module):

      @Stateless
      @LocalBean
      public class RegraDAO extends GenericDAO<Regra> implements VerificadorDeEntidades {
      
      
          @PersistenceContext(unitName = PersistenceUnitsUtil.UNIT_INTOUCH)
          private EntityManager em;
          QRegra REGRA = QRegra.regra;
      
      
          public RegraDAO() {
              super(Regra.class);
          }
      
      
          /**
           * Retorna o Set com o nome das de todas as permissões do conjunto de regras
           * repassado.
           *
           * @param roleNames Conjunto com nomes de regras.
           * @return Set com o nome das permissões.
           * @throws RegraException Em caso de erro lança essa exceção.
           */
      //    @Override
          public Set<String> getPermissoesDasRegras(Set<String> roleNames) throws RegraException {
              if (roleNames == null) {
                  throw new RegraException("O valor rolesNames recebeu nulo,"
                          + " um conjunto de nomes de regras deve obrigatóriamente ser atribuído.");
              }
      
      
              Set<String> permissoesToString = null;
              List<Permissao> permissoesList = null;
              JPQLQuery query = new JPAQuery(getEntityManager());
      
      
              //Pega o Set de permissões que pertence a regra e depois disto,
              //intera o Set de permissões pegando o nome das permissões.
              for (String regra : roleNames) {
                  Object regras = query.from(REGRA).where(REGRA.nomeDaRegra.eq(regra)).list(REGRA.permissoes);
                  if (regras != null && (regras instanceof List)) {
                      permissoesList = (List<Permissao>) regras;
                      permissoesToString = new HashSet<String>();
      
      
                      for (Permissao permissao : permissoesList) {
                          permissoesToString.add(permissao.getNomeDaPermissao());
                      }
      
      
                  } else {
                      throw new RegraException("As permissões não foram encontradas para esta regra.");
                  }
              }
              return permissoesToString;
          }
      
      
          /**
           * Verifica duplicidade de valores nos campos NOME.
           *
           * @param valor Valor a ser verificado
           * @return True se existe duplicidade, false para caso negativo.
           */
          @Override
          public boolean verficaValorJaExistenteParaCamposRestritos(String valor) {
              boolean isExistente = false;
              try {
                  JPQLQuery query = new JPAQuery(getEntityManager());
                  isExistente = query.from(REGRA).where(REGRA.nomeDaRegra.eq(valor)).exists();
              } catch (Exception e) {
                  Logger.getLogger(REGRA.getClass().getName()).log(Level.SEVERE, null, e);
              }
              return isExistente;
          }
      
      
          @Override
          protected EntityManager getEntityManager() {
              return em;
          }
      }
      
      

       

      DatabaseRealm Class (web module):

       


      public class DataBaseRealm extends AuthorizingRealm {
          @Inject
          private PessoaDAO pessoaDAO; //Continues NULL.
          @Inject
          private RegraDAO regraDAO; //Continues NULL.
      
          @Override
          protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
              //O CÓDIGO DESTE MÉTODO ESTÁ BEM DIDÁTICO
      
              //Se os principals (diretrizes identificadoras) forem null, isto
              //significa que os usernames são inválidos.
              if (principals == null) {
                  throw new AuthorizationException("O argumento PrincipalCollection do método não podem ser null");
              }
      
              String username = (String) getAvailablePrincipal(principals);
      
              Set<String> roleNames = null;
              Set<String> permissoesDasRegras = null;
              Set<String> permissoesAvulsasDePessoa = null;
              Set<String> todasAsPermissoes = null;
      
              try {
                  //Adiquire regras e permissões do banco de dados.
                  //Regras.
                  roleNames = pessoaDAO.getRegrasDePessoaPeloLogin(username);
                  //Permissões das regras.
                  permissoesDasRegras = regraDAO.getPermissoesDasRegras(roleNames);
                  //Permissões avulsas
                  permissoesAvulsasDePessoa = pessoaDAO.getPermissoesDePessoaPeloLogin(username);
                  //Junta todas as permissões.
                  todasAsPermissoes = new HashSet<>();
                  todasAsPermissoes.addAll(permissoesDasRegras);
                  todasAsPermissoes.addAll(permissoesAvulsasDePessoa);
              } catch (PessoaException | RegraException ex) {
                  Logger.getLogger(DataBaseRealm.class.getName()).log(Level.SEVERE, null, ex);
              }
      
              SimpleAuthorizationInfo info = ((roleNames == null) || (roleNames.isEmpty())) ? new SimpleAuthorizationInfo() : new SimpleAuthorizationInfo(roleNames);
              info.setStringPermissions(todasAsPermissoes);
              return info;
          }
      
          /**
           * Retorna um
           * <code>AuthenticationInfo</code> para a classe
           * <code>AuthorizingRealm</code> poder completar o processo de autenticação.
           * (
           * <code>Subject</code>) com suas
           * <code>Principals</code> e credenciais.
           *
           * @param token Um token contendo o nome de usuário e a senha para
           * avaliação.
           * @return Retorna um AuthenticationInfo. Este objeto representa um sujeito
           * do Realm em questão.
           * @throws AuthenticationException Retorna essa exceção caso entre em
           * condição de erro.
           */
          @Override
          protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
              UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;
              String userName = usernamePasswordToken.getUsername();
      
              //Nome de usuário inválido
              if (userName == null) {
                  throw new AccountException("Nomes de usuário nulos não são permitidos neste reino.");
              }
      
              SaltedAuthenticationInfo info = null;
      
              try {
                  //Tenta pegar a senha do login repassado
                  String senha = pessoaDAO.getSenhaPeloLogin(userName);
                  String salDaSenha = pessoaDAO.getSalDeSenhaPeloLogin(userName);
                  ByteSource salt = new SimpleByteSource(Base64.decode(salDaSenha));
                  info = new SimpleAuthenticationInfo(userName, senha, salt, getName());
              } catch (PessoaException ex) {
                  Logger.getLogger(DataBaseRealm.class.getName()).log(Level.SEVERE, null, ex.getMessage());
              }
              return info;
          }
      }
      

       

       

      Here are the pom.xml of the modules:

       

      MyProject.ear:

       

      <?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>
        <parent>
          <artifactId>SagaEnterpise</artifactId>
          <groupId>br.com.webbiz.saga</groupId>
          <version>1.0-SNAPSHOT</version>
        </parent>
      
      
        <groupId>br.com.webbiz.saga</groupId>
        <artifactId>SagaEnterpise-ear</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>ear</packaging>
      
      
        <name>SagaEnterpise-ear</name>
      
      
        <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
        </properties>
      
      
        <build>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>2.3.2</version>
              <configuration>
                <source>1.7</source>
                <target>1.7</target>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-ear-plugin</artifactId>
              <version>2.6</version>
              <configuration>
                  <version>6</version>
                  <defaultLibBundleDir>lib</defaultLibBundleDir>
              </configuration>
            </plugin>
          </plugins>
        </build>
          <dependencies>
              <dependency>
                  <groupId>br.com.webbiz.saga</groupId>
                  <artifactId>SagaEnterpise-ejb</artifactId>
                  <version>1.0-SNAPSHOT</version>
                  <type>ejb</type>
              </dependency>
              <dependency>
                  <groupId>br.com.webbiz.saga</groupId>
                  <artifactId>SagaEnterpise-web</artifactId>
                  <version>1.0-SNAPSHOT</version>
                  <type>war</type>
              </dependency>
          </dependencies>
      </project>
      
      

       

      MyProject-ejb:

       

      <?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>
          <parent>
              <artifactId>SagaEnterpise</artifactId>
              <groupId>br.com.webbiz.saga</groupId>
              <version>1.0-SNAPSHOT</version>
          </parent>
      
      
          <groupId>br.com.webbiz.saga</groupId>
          <artifactId>SagaEnterpise-ejb</artifactId>
          <version>1.0-SNAPSHOT</version>
          <packaging>ejb</packaging>
      
      
          <name>SagaEnterpise-ejb</name>
      
      
          <properties>
              <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
              <!-- VERSOES DE PROJETOS -->
              <querydsl.version>2.8.0</querydsl.version>
              <shiro.version>1.2.1</shiro.version>
              <mysql.version>5.1.21</mysql.version>
              <primefaces.version>3.4.2</primefaces.version>
          </properties>
      
          <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>org.jboss.arquillian</groupId>
                      <artifactId>arquillian-bom</artifactId>
                      <version>1.0.2.Final</version>
                      <scope>import</scope>
                      <type>pom</type>
                  </dependency>
              </dependencies>
          </dependencyManagement>
      
      
          <dependencies>
              <dependency>
                  <groupId>org.eclipse.persistence</groupId>
                  <artifactId>eclipselink</artifactId>
                  <version>2.3.2</version>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>org.eclipse.persistence</groupId>
                  <artifactId>javax.persistence</artifactId>
                  <version>2.0.3</version>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>org.eclipse.persistence</groupId>
                  <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
                  <version>2.3.2</version>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>com.mysema.querydsl</groupId>
                  <artifactId>querydsl-jpa</artifactId>
                  <version>${querydsl.version}</version>
                  <type>jar</type>
              </dependency>
              <dependency>
                  <groupId>com.mysema.querydsl</groupId>
                  <artifactId>querydsl-apt</artifactId>
                  <version>${querydsl.version}</version>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>${mysql.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.primefaces</groupId>
                  <artifactId>primefaces</artifactId>
                  <version>${primefaces.version}</version>
                  <type>jar</type>
              </dependency>
              <dependency>
                  <groupId>org.apache.shiro</groupId>
                  <artifactId>shiro-core</artifactId>
                  <version>${shiro.version}</version>
                  <type>jar</type>
              </dependency>
      
              <!-- JAVA EE API -->
              <dependency>
                  <groupId>javax</groupId>
                  <artifactId>javaee-api</artifactId>
                  <version>6.0</version>
                  <scope>provided</scope>
              </dependency>
      
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>4.10</version>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>org.jboss.arquillian.junit</groupId>
                  <artifactId>arquillian-junit-container</artifactId>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
                  <version>1.1.1</version>
              </dependency>
              <dependency>
                  <groupId>log4j</groupId>
                  <artifactId>log4j</artifactId>
                  <version>1.2.17</version>
              </dependency>
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-api</artifactId>
                  <version>1.7.2</version>
              </dependency>
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-simple</artifactId>
                  <version>1.7.1</version>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-log4j12</artifactId>
                  <version>1.7.2</version>
              </dependency>
          </dependencies>
      
          <profiles>
              <profile>
                  <id>arquillian-glassfish-embedded</id>
                  <activation>
                      <activeByDefault>true</activeByDefault>
                  </activation>
                  <dependencies>
                      <dependency>
                          <groupId>org.jboss.arquillian.container</groupId>
                          <artifactId>arquillian-glassfish-embedded-3.1</artifactId>
                          <version>1.0.0.CR3</version>
                          <scope>test</scope>
                      </dependency>
                      <dependency>
                          <groupId>org.glassfish.main.extras</groupId>
                          <artifactId>glassfish-embedded-all</artifactId>
                          <version>3.1.2.2</version>
                          <scope>provided</scope>
                      </dependency>
                  </dependencies>
              </profile>
          </profiles>
      
      
          <build>
              <resources>
                  <resource>
                      <targetPath>META-INF</targetPath>
                      <directory>src</directory>
                      <includes>
                          <!--<include>**/*.xml</include>-->
                          <include>jax-ws-catalog.xml</include>
                          <!--<include>META-INF/persistence.xml</include>-->
                          <include>wsdl/**</include>
                      </includes>
                  </resource>
                  <resource>
                      <targetPath>META-INF</targetPath>
                      <directory>src/main/resources/META-INF</directory>
                      <includes>
                          <include>persistence.xml</include>
                          <include>beans.xml</include>
                      </includes>
                  </resource>
              </resources>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>2.3.2</version>
                      <configuration>
                          <source>1.7</source>
                          <target>1.7</target>
                          <compilerArguments>
                              <endorseddirs>${endorsed.dir}</endorseddirs>
                          </compilerArguments>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-ejb-plugin</artifactId>
                      <version>2.3</version>
                      <configuration>
                          <ejbVersion>3.1</ejbVersion>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-war-plugin</artifactId>
                      <version>2.1.1</version>
                      <configuration>
                          <failOnMissingWebXml>false</failOnMissingWebXml>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-dependency-plugin</artifactId>
                      <version>2.1</version>
                      <executions>
                          <execution>
                              <phase>validate</phase>
                              <goals>
                                  <goal>copy</goal>
                              </goals>
                              <configuration>
                                  <outputDirectory>${endorsed.dir}</outputDirectory>
                                  <silent>true</silent>
                                  <artifactItems>
                                      <artifactItem>
                                          <groupId>javax</groupId>
                                          <artifactId>javaee-endorsed-api</artifactId>
                                          <version>6.0</version>
                                          <type>jar</type>
                                      </artifactItem>
                                  </artifactItems>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>com.mysema.maven</groupId>
                      <artifactId>apt-maven-plugin</artifactId>
                      <version>1.0.6</version>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>process</goal>
                              </goals>
                              <configuration>
                                  <outputDirectory>target/generated-sources/java</outputDirectory>
                                  <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-surefire-plugin</artifactId>
                      <version>2.12.4</version>
                      <configuration>
                          <systemPropertyVariables>
                              <java.util.logging.config.file>${basedir}/src/test/resources/logging.properties</java.util.logging.config.file>
                          </systemPropertyVariables>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.jvnet.jax-ws-commons</groupId>
                      <artifactId>jaxws-maven-plugin</artifactId>
                      <version>2.2</version>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>wsimport</goal>
                              </goals>
                              <configuration>
                                  <wsdlFiles>
                                      <wsdlFile>GrepCep.xml.wsdl</wsdlFile>
                                  </wsdlFiles>
                                  <wsdlLocation>file:/home/vinicius/.netbeans/7.2/config/WebServices/GrepCep-xml/catalog/GrepCep.xml.wsdl</wsdlLocation>
                                  <staleFile>${project.build.directory}/jaxws/stale/GrepCep.xml.stale</staleFile>
                              </configuration>
                              <id>wsimport-generate-GrepCep.xml</id>
                              <phase>generate-sources</phase>
                          </execution>
                          <execution>
                              <goals>
                                  <goal>wsimport</goal>
                              </goals>
                              <configuration>
                                  <wsdlFiles>
                                      <wsdlFile>GrepCep.xml.wsdl</wsdlFile>
                                  </wsdlFiles>
                                  <wsdlLocation>file:/home/vinicius/.netbeans/7.2/config/WebServices/GrepCep-xml/catalog/GrepCep.xml.wsdl</wsdlLocation>
                                  <staleFile>${project.build.directory}/jaxws/stale/GrepCep.xml_1.stale</staleFile>
                              </configuration>
                              <id>wsimport-generate-GrepCep.xml_1</id>
                              <phase>generate-sources</phase>
                          </execution>
                      </executions>
                      <dependencies>
                          <dependency>
                              <groupId>javax.xml</groupId>
                              <artifactId>webservices-api</artifactId>
                              <version>1.4</version>
                          </dependency>
                      </dependencies>
                      <configuration>
                          <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
                          <xnocompile>true</xnocompile>
                          <verbose>true</verbose>
                          <extension>true</extension>
                          <catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
                          <target>2.0</target>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
          <repositories>
              <repository>
                  <id>JBoss</id>
                  <name>JBoss Repository</name>
                  <url>https://repository.jboss.org/nexus/content/groups/public/</url>
              </repository>
              <repository>
                  <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url>
                  <id>eclipselink</id>
                  <layout>default</layout>
                  <name>Repository for library EclipseLink (JPA 2.0)</name>
              </repository>
              <repository>
                  <id>prime-repo</id>
                  <name>PrimeFaces Maven Repository</name>
                  <url>http://repository.primefaces.org</url>
                  <layout>default</layout>
              </repository>
          </repositories>
      </project>
      
      

       

      MyProject-war:

       

      <?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>
          <parent>
              <artifactId>SagaEnterpise</artifactId>
              <groupId>br.com.webbiz.saga</groupId>
              <version>1.0-SNAPSHOT</version>
          </parent>
      
      
          <groupId>br.com.webbiz.saga</groupId>
          <artifactId>SagaEnterpise-web</artifactId>
          <version>1.0-SNAPSHOT</version>
          <packaging>war</packaging>
      
      
          <name>SagaEnterpise-web</name>
      
      
          <properties>
              <shiro.version>1.2.1</shiro.version>
              <log4j.version>1.2.17</log4j.version>
              <primefaces.version>3.4.1</primefaces.version>
              <primefaces-extensions.version>0.6.1</primefaces-extensions.version>
              <slf4j-simple.version>1.7.2</slf4j-simple.version>
              <junit.version>4.10</junit.version>
              <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              <netbeans.hint.deploy.server>gfv3ee6</netbeans.hint.deploy.server>
          </properties>
      
      
          <dependencies>
              <dependency>
                  <groupId>br.com.webbiz.saga</groupId>
                  <artifactId>SagaEnterpise-ejb</artifactId>
                  <version>1.0-SNAPSHOT</version>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>javax</groupId>
                  <artifactId>javaee-api</artifactId>
                  <version>6.0</version>
                  <type>jar</type>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>javax</groupId>
                  <artifactId>javaee-web-api</artifactId>
                  <version>6.0</version>
                  <scope>provided</scope>
              </dependency>
              <dependency>
                  <groupId>org.apache.shiro</groupId>
                  <artifactId>shiro-web</artifactId>
                  <version>${shiro.version}</version>
              </dependency>
              <dependency>
                  <groupId>org.primefaces</groupId>
                  <artifactId>primefaces</artifactId>
                  <version>3.3</version>
                  <type>jar</type>
              </dependency>
              <dependency>
                  <groupId>org.primefaces.extensions</groupId>
                  <artifactId>primefaces-extensions</artifactId>
                  <version>${primefaces-extensions.version}</version>
              </dependency>
              <dependency>  
                  <groupId>org.primefaces.themes</groupId>  
                  <artifactId>humanity</artifactId>  
                  <version>1.0.3</version>  
              </dependency>
              <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>${junit.version}</version>
                  <scope>test</scope>
              </dependency>
              <dependency>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
                  <version>1.1.1</version>
              </dependency>
              <dependency>
                  <groupId>log4j</groupId>
                  <artifactId>log4j</artifactId>
                  <version>${log4j.version}</version>
                  <type>jar</type>
              </dependency>
              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-simple</artifactId>
                  <version>${slf4j-simple.version}</version>
                  <scope>test</scope>
              </dependency>
          </dependencies>
      
      
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>2.3.2</version>
                      <configuration>
                          <source>1.7</source>
                          <target>1.7</target>
                          <compilerArguments>
                              <endorseddirs>${endorsed.dir}</endorseddirs>
                          </compilerArguments>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-war-plugin</artifactId>
                      <version>2.1.1</version>
                      <configuration>
                          <failOnMissingWebXml>false</failOnMissingWebXml>
                      </configuration>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-dependency-plugin</artifactId>
                      <version>2.1</version>
                      <executions>
                          <execution>
                              <phase>validate</phase>
                              <goals>
                                  <goal>copy</goal>
                              </goals>
                              <configuration>
                                  <outputDirectory>${endorsed.dir}</outputDirectory>
                                  <silent>true</silent>
                                  <artifactItems>
                                      <artifactItem>
                                          <groupId>javax</groupId>
                                          <artifactId>javaee-endorsed-api</artifactId>
                                          <version>6.0</version>
                                          <type>jar</type>
                                      </artifactItem>
                                  </artifactItems>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
          <repositories>
              <repository>
                  <url>http://repository.primefaces.org/</url>
                  <id>primefaces</id>
                  <layout>default</layout>
                  <name>Repository for library PrimeFaces 3.2</name>
              </repository>
          </repositories>
      
      
      </project>
      
      

       

      Guys, here is missing some setting? I'm using Glassfish 3.1.2 (I can attach the application case would anyone want to help me in a more direct way).

      Excuse me for any grammatical error committed, I'm Brazilian.

      Thanks for all.

      The Maven Project was attached.