Loading ...
Sorry, an error occurred while loading the content.
 

Re: [riojug] JNDI não funciona em Entity 3.0?

Expand Messages
  • André Pinto
    Posso estar falando uma grande besteira, mas acho que no possvel injetar Session Beans em Entity Beans, at porque no meu ver no faz sentido algum... J li o
    Message 1 of 17 , Mar 11, 2007
      Posso estar falando uma grande besteira, mas acho que não é possível injetar Session Beans em Entity Beans, até porque no meu ver não faz sentido algum... Já li o livro de referência e nunca vi nada parecido....

      abs,
      André Pinto

      Peter escreveu:

      Amigos,

      Estou com uma dúvida séria... :¬)
      Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

      Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
      Estou tendo um NullPointerExceptio n na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
      O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContex t EntityManager em".
      Em SessionBeans está funcionando. Nos Entities não está.

      Segue o código do Entity e em seguida o StackTrace:

      @Entity
      @PrimaryKeyJoinColu mn(name=" ID")
      public class AmbienteInstanciado extends Ambiente {

          @EJB(name="DAORelac ionamentoBean/ local")
          DAORelacionamento<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosDAO;

          private Set<AmbienteInstanciado Usuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciado Usuarios>();

          @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciad o")
          private Set<AmbienteInstanciado Usuarios> getMapeamentoUsuari os() {
              return this.mapeamentoUsua rios;
          }

          private void setMapeamentoUsuari os(Set<AmbienteInstanciado Usuarios> ambienteInstanciado Usuarios) {
              this.mapeamentoUsua rios = ambienteInstanciado Usuarios;
          }

          public void setUsuarios( List<Usuario> usuarios) {
              List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
              List<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosRemove = new LinkedList<AmbienteInstanciado Usuarios>();
      //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
              TreeSet<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosNew = new TreeSet<AmbienteInstanciado Usuarios>();
              for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : getMapeamentoUsuari os()){
                  Usuario usuario = ambienteInstanciado Usuarios. getUsuario( );
                  Integer position = usuarios.indexOf( usuario);
                  if (position != -1) {
                      ambienteInstanciado Usuarios. setSequencia( new Integer(position. toString( )));
                      ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                  } else {
      //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                      ambienteInstanciado UsuariosRemove. add(ambienteInst anciadoUsuarios) ;
                  }
      //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                  usuariosAdd. remove(usuario) ;
              }
      //        Removendo usuarios
              for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : ambienteInstanciado UsuariosRemove) {
                  getAmbienteInstanci adoUsuariosDAO( ).remove( ambienteInstanci adoUsuarios) ; Aqui poderia ter dado erro se tivesse entrado neste for!!!
              }
      //        Adicionando usuarios
              for (Usuario usuario : usuariosAdd) {
                  Integer position = usuarios.indexOf( usuario);
                  AmbienteInstanciado Usuarios ambienteInstanciado Usuarios = new AmbienteInstanciado Usuarios( usuario, this, new Integer(position. toString( )));
                  getAmbienteInstanci adoUsuariosDAO( ).persist( ambienteInstanci adoUsuarios) ; Aqui deu NullPointerExceptio n. Com um System.out.println(
      getAmbienteInstanci adoUsuariosDAO( )), tive a confirmação de que este era "null".
                  ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
              }
              this.mapeamentoUsua rios = ambienteInstanciado UsuariosNew;
          }

          @Transient
          private DAORelacionamento<AmbienteInstanciado Usuarios> getAmbienteInstanci adoUsuariosDAO( ) {
              return ambienteInstanciado UsuariosDAO;
          }

      }

      Agora, o StackTrace. Reparem as linhas em negrito:

      javax.ejb.EJBExcept ion: java.lang.NullPoint erException
          at org.jboss.ejb3. tx.Ejb3TxPolicy. handleExceptionI nOurTx(Ejb3TxPol icy.java: 69)
          at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:83)
          at org.jboss.aspects. tx.TxInterceptor $Required. invoke(TxInterce ptor.java: 197)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.aspects. tx.TxPropagation Interceptor. invoke(TxPropaga tionInterceptor. java:76)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.ejb3. stateless. StatelessInstanc eInterceptor. invoke(Stateless InstanceIntercep tor.java: 62)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.aspects. security. AuthenticationIn terceptor. invoke(Authentic ationInterceptor .java:77)
          at org.jboss.ejb3. security. Ejb3Authenticati onInterceptor. invoke(Ejb3Authe nticationInterce ptor.java: 102)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.ejb3. ENCPropagationIn terceptor. invoke(ENCPropag ationInterceptor .java:47)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.ejb3. asynchronous. AsynchronousInte rceptor.invoke( AsynchronousInte rceptor.java: 106)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.ejb3. stateless. StatelessContain er.localInvoke( StatelessContain er.java:211)
          at org.jboss.ejb3. stateless. StatelessLocalPr oxy.invoke( StatelessLocalPr oxy.java: 79)
          at $Proxy32.teste( Unknown Source)
          at br.ufrj.cos. lens.taba. testes.TesteTaba .testTeste( TesteTaba. java:34)
          at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
          at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
          at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
          at java.lang.reflect. Method.invoke( Unknown Source)
          at org.junit.internal. runners.TestMeth odRunner. executeMethodBod y(TestMethodRunn er.java:99)
          at org.junit.internal. runners.TestMeth odRunner. runUnprotected( TestMethodRunner .java:81)
          at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
          at org.junit.internal. runners.TestMeth odRunner. runMethod( TestMethodRunner .java:75)
          at org.junit.internal. runners.TestMeth odRunner. run(TestMethodRu nner.java: 45)
          at org.junit.internal. runners.TestClas sMethodsRunner. invokeTestMethod (TestClassMethod sRunner.java: 71)
          at org.junit.internal. runners.TestClas sMethodsRunner. run(TestClassMet hodsRunner. java:35)
          at org.junit.internal. runners.TestClas sRunner$1. runUnprotected( TestClassRunner. java:42)
          at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
          at org.junit.internal. runners.TestClas sRunner.run( TestClassRunner. java:52)
          at org.eclipse. jdt.internal. junit4.runner. JUnit4TestRefere nce.run(JUnit4Te stReference. java:38)
          at org.eclipse. jdt.internal. junit.runner. TestExecution. run(TestExecutio n.java:38)
          at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:460)
          at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:673)
          at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .run(RemoteTestR unner.java: 386)
          at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .main(RemoteTest Runner.java: 196)
      Caused by: java.lang.NullPoint erException
          at br.ufrj.cos. lens.taba. model.tables. AmbienteInstanci ado.setUsuarios( AmbienteInstanci ado.java: 253)

          at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.insertUsua rioAmbienteInsta nciado(Mapeament oCT01.java: 57)
          at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestinoV azia(MapeamentoC T01.java: 84)
          at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestino( MapeamentoCT01. java:120)
          at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.teste( MapeamentoCT01. java:34)
          at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
          at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
          at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
          at java.lang.reflect. Method.invoke( Unknown Source)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeTarget( MethodInvocation .java:121)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:110)
          at org.jboss.ejb3. interceptor. InvocationContex tImpl.proceed( InvocationContex tImpl.java: 166)
          at org.jboss.ejb3. interceptor. EJB3Interceptors Interceptor. invoke(EJB3Inter ceptorsIntercept or.java:63)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.ejb3. entity.Transacti onScopedEntityMa nagerInterceptor .invoke(Transact ionScopedEntityM anagerIntercepto r.java:54)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.ejb3. AllowedOperation sInterceptor. invoke(AllowedOp erationsIntercep tor.java: 47)
          at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
          at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:79)
          ... 37 more

      Agradeço muitíssimo aos que puderem me ajudar.
      Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

      Abraço a todos e obrigado pelo seu tempo.

      -- 
      Peter P. Lupo
      Undergraduating in Computer Science DCC/UFRJ
      Sun Certified Java Associate
      http://pplupo. googlepages. com/
      Cell. +55 (021) 81742487

    • Peter
      Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no
      Message 2 of 17 , Mar 11, 2007
        Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no entity.

        De qualquer forma, preciso de um entity manager lá...
        A única forma que consegui até agora foi usando um EntityManagerFactory para conseguir uma instância de EntityManager, mas isto só deveria ser usado fora do container.

        E aí? Alguma sugestão?

        Abraço.
        Peter P. Lupo
        Undergraduating in Computer Science DCC/UFRJ
        Sun Certified Java Associate
        http://pplupo.googlepages.com/
        Cell. +55 (021) 81742487


        André Pinto wrote:

        Posso estar falando uma grande besteira, mas acho que não é possível injetar Session Beans em Entity Beans, até porque no meu ver não faz sentido algum... Já li o livro de referência e nunca vi nada parecido....

        abs,
        André Pinto

        Peter escreveu:

        Amigos,

        Estou com uma dúvida séria... :¬)
        Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

        Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
        Estou tendo um NullPointerExceptio n na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
        O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContex t EntityManager em".
        Em SessionBeans está funcionando. Nos Entities não está.

        Segue o código do Entity e em seguida o StackTrace:

        @Entity
        @PrimaryKeyJoinColu mn(name=" ID")
        public class AmbienteInstanciado extends Ambiente {

            @EJB(name="DAORelac ionamentoBean/ local")
            DAORelacionamento<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosDAO;

            private Set<AmbienteInstanciado Usuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciado Usuarios>();

            @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciad o")
            private Set<AmbienteInstanciado Usuarios> getMapeamentoUsuari os() {
                return this.mapeamentoUsua rios;
            }

            private void setMapeamentoUsuari os(Set<AmbienteInstanciado Usuarios> ambienteInstanciado Usuarios) {
                this.mapeamentoUsua rios = ambienteInstanciado Usuarios;
            }

            public void setUsuarios( List<Usuario> usuarios) {
                List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                List<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosRemove = new LinkedList<AmbienteInstanciado Usuarios>();
        //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                TreeSet<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosNew = new TreeSet<AmbienteInstanciado Usuarios>();
                for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : getMapeamentoUsuari os()){
                    Usuario usuario = ambienteInstanciado Usuarios. getUsuario( );
                    Integer position = usuarios.indexOf( usuario);
                    if (position != -1) {
                        ambienteInstanciado Usuarios. setSequencia( new Integer(position. toString( )));
                        ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                    } else {
        //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                        ambienteInstanciado UsuariosRemove. add(ambienteInst anciadoUsuarios) ;
                    }
        //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                    usuariosAdd. remove(usuario) ;
                }
        //        Removendo usuarios
                for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : ambienteInstanciado UsuariosRemove) {
                    getAmbienteInstanci adoUsuariosDAO( ).remove( ambienteInstanci adoUsuarios) ; Aqui poderia ter dado erro se tivesse entrado neste for!!!
                }
        //        Adicionando usuarios
                for (Usuario usuario : usuariosAdd) {
                    Integer position = usuarios.indexOf( usuario);
                    AmbienteInstanciado Usuarios ambienteInstanciado Usuarios = new AmbienteInstanciado Usuarios( usuario, this, new Integer(position. toString( )));
                    getAmbienteInstanci adoUsuariosDAO( ).persist( ambienteInstanci adoUsuarios) ; Aqui deu NullPointerExceptio n. Com um System.out.println(
        getAmbienteInstanci adoUsuariosDAO( )), tive a confirmação de que este era "null".
                    ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                }
                this.mapeamentoUsua rios = ambienteInstanciado UsuariosNew;
            }

            @Transient
            private DAORelacionamento<AmbienteInstanciado Usuarios> getAmbienteInstanci adoUsuariosDAO( ) {
                return ambienteInstanciado UsuariosDAO;
            }

        }

        Agora, o StackTrace. Reparem as linhas em negrito:

        javax.ejb.EJBExcept ion: java.lang.NullPoint erException
            at org.jboss.ejb3. tx.Ejb3TxPolicy. handleExceptionI nOurTx(Ejb3TxPol icy.java: 69)
            at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:83)
            at org.jboss.aspects. tx.TxInterceptor $Required. invoke(TxInterce ptor.java: 197)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.aspects. tx.TxPropagation Interceptor. invoke(TxPropaga tionInterceptor. java:76)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.ejb3. stateless. StatelessInstanc eInterceptor. invoke(Stateless InstanceIntercep tor.java: 62)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.aspects. security. AuthenticationIn terceptor. invoke(Authentic ationInterceptor .java:77)
            at org.jboss.ejb3. security. Ejb3Authenticati onInterceptor. invoke(Ejb3Authe nticationInterce ptor.java: 102)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.ejb3. ENCPropagationIn terceptor. invoke(ENCPropag ationInterceptor .java:47)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.ejb3. asynchronous. AsynchronousInte rceptor.invoke( AsynchronousInte rceptor.java: 106)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.ejb3. stateless. StatelessContain er.localInvoke( StatelessContain er.java:211)
            at org.jboss.ejb3. stateless. StatelessLocalPr oxy.invoke( StatelessLocalPr oxy.java: 79)
            at $Proxy32.teste( Unknown Source)
            at br.ufrj.cos. lens.taba. testes.TesteTaba .testTeste( TesteTaba. java:34)
            at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
            at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
            at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
            at java.lang.reflect. Method.invoke( Unknown Source)
            at org.junit.internal. runners.TestMeth odRunner. executeMethodBod y(TestMethodRunn er.java:99)
            at org.junit.internal. runners.TestMeth odRunner. runUnprotected( TestMethodRunner .java:81)
            at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
            at org.junit.internal. runners.TestMeth odRunner. runMethod( TestMethodRunner .java:75)
            at org.junit.internal. runners.TestMeth odRunner. run(TestMethodRu nner.java: 45)
            at org.junit.internal. runners.TestClas sMethodsRunner. invokeTestMethod (TestClassMethod sRunner.java: 71)
            at org.junit.internal. runners.TestClas sMethodsRunner. run(TestClassMet hodsRunner. java:35)
            at org.junit.internal. runners.TestClas sRunner$1. runUnprotected( TestClassRunner. java:42)
            at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
            at org.junit.internal. runners.TestClas sRunner.run( TestClassRunner. java:52)
            at org.eclipse. jdt.internal. junit4.runner. JUnit4TestRefere nce.run(JUnit4Te stReference. java:38)
            at org.eclipse. jdt.internal. junit.runner. TestExecution. run(TestExecutio n.java:38)
            at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:460)
            at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:673)
            at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .run(RemoteTestR unner.java: 386)
            at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .main(RemoteTest Runner.java: 196)
        Caused by: java.lang.NullPoint erException
            at br.ufrj.cos. lens.taba. model.tables. AmbienteInstanci ado.setUsuarios( AmbienteInstanci ado.java: 253)

            at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.insertUsua rioAmbienteInsta nciado(Mapeament oCT01.java: 57)
            at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestinoV azia(MapeamentoC T01.java: 84)
            at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestino( MapeamentoCT01. java:120)
            at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.teste( MapeamentoCT01. java:34)
            at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
            at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
            at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
            at java.lang.reflect. Method.invoke( Unknown Source)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeTarget( MethodInvocation .java:121)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:110)
            at org.jboss.ejb3. interceptor. InvocationContex tImpl.proceed( InvocationContex tImpl.java: 166)
            at org.jboss.ejb3. interceptor. EJB3Interceptors Interceptor. invoke(EJB3Inter ceptorsIntercept or.java:63)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.ejb3. entity.Transacti onScopedEntityMa nagerInterceptor .invoke(Transact ionScopedEntityM anagerIntercepto r.java:54)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.ejb3. AllowedOperation sInterceptor. invoke(AllowedOp erationsIntercep tor.java: 47)
            at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
            at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:79)
            ... 37 more

        Agradeço muitíssimo aos que puderem me ajudar.
        Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

        Abraço a todos e obrigado pelo seu tempo.

        -- 
        Peter P. Lupo
        Undergraduating in Computer Science DCC/UFRJ
        Sun Certified Java Associate
        http://pplupo. googlepages. com/
        Cell. +55 (021) 81742487

      • André Pinto
        Sinceramente eu tentaria remodelar as classes e fazer de outra maneira o que voc est precisando. abs, Andr Peter escreveu: Ok, realmente faz muito sentido, mas
        Message 3 of 17 , Mar 12, 2007
          Sinceramente eu tentaria remodelar as classes e fazer de outra maneira o que você está precisando.

          abs,

          André

          Peter escreveu:

          Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no entity.

          De qualquer forma, preciso de um entity manager lá...
          A única forma que consegui até agora foi usando um EntityManagerFactor y para conseguir uma instância de EntityManager, mas isto só deveria ser usado fora do container.

          E aí? Alguma sugestão?

          Abraço.

          Peter P. Lupo
          Undergraduating in Computer Science DCC/UFRJ
          Sun Certified Java Associate
          http://pplupo. googlepages. com/
          Cell. +55 (021) 81742487


        • Peter
          Eu também!!!! Mas neste caso não tenho saída mesmo, infelizmente... estou com o modelo preso de uma tal forma que não posso mudá-lo por motivos de
          Message 4 of 17 , Mar 12, 2007
            Eu também!!!! Mas neste caso não tenho saída mesmo, infelizmente... estou com o modelo "preso" de uma tal forma que não posso mudá-lo por motivos de compatibilidade com um sistema legado. E não dá simplesmente pra colocar um adapter ou coisa que o valha. Tem que ser assim mesmo, infelizmente. Eu teria que colocar um diagrama grande e complicado aqui na lista, ficar explicando por e-mail, etc...
            Enfim, a pergunta é: JNDI não funciona em Entity 3.0?
            Peter P. Lupo
            Undergraduating in Computer Science DCC/UFRJ
            Sun Certified Java Associate
            http://pplupo.googlepages.com/
            Cell. +55 (021) 81742487


            André Pinto wrote:

            Sinceramente eu tentaria remodelar as classes e fazer de outra maneira o que você está precisando.

            abs,

            André

            Peter escreveu:

            Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no entity.

            De qualquer forma, preciso de um entity manager lá...
            A única forma que consegui até agora foi usando um EntityManagerFactor y para conseguir uma instância de EntityManager, mas isto só deveria ser usado fora do container.

            E aí? Alguma sugestão?

            Abraço.

            Peter P. Lupo
            Undergraduating in Computer Science DCC/UFRJ
            Sun Certified Java Associate
            http://pplupo. googlepages. com/
            Cell. +55 (021) 81742487


          • Peter
            Só um complemento: eu sei reconhecer uma gambiarra quando vejo e tudo o que penso nessa hora é espero não ter que fazer este tipo de coisa novamente ... o
            Message 5 of 17 , Mar 12, 2007
              Só um complemento: eu sei reconhecer uma gambiarra quando vejo e tudo o que penso nessa hora é "espero não ter que fazer este tipo de coisa novamente"... o problema é quando não dá pra escapar por motivos "superiores"... Então, por favor, me dêem uma forcinha com este problema, pq o design OO está o melhor possível (pelo menos nenhuma gambiarra vai se manifestar na interface dos entities... assim o controle fica salvo e um dia espero poder consertar isso). :¬)

              E aí André... vc que já leu o livro de referência... sabe a resposta pra pergunta no subject?
              *cruzando os dedos*
              Peter P. Lupo
              Undergraduating in Computer Science DCC/UFRJ
              Sun Certified Java Associate
              http://pplupo.googlepages.com/
              Cell. +55 (021) 81742487


              André Pinto wrote:

              Sinceramente eu tentaria remodelar as classes e fazer de outra maneira o que você está precisando.

              abs,

              André

              Peter escreveu:

              Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no entity.

              De qualquer forma, preciso de um entity manager lá...
              A única forma que consegui até agora foi usando um EntityManagerFactor y para conseguir uma instância de EntityManager, mas isto só deveria ser usado fora do container.

              E aí? Alguma sugestão?

              Abraço.

              Peter P. Lupo
              Undergraduating in Computer Science DCC/UFRJ
              Sun Certified Java Associate
              http://pplupo. googlepages. com/
              Cell. +55 (021) 81742487


            • Juarez Junior
              Peter, Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um
              Message 6 of 17 , Mar 12, 2007
                Peter,

                Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                []'s

                Juarez Junior



                On 3/11/07, Peter <peterplupo@...> wrote:

                Amigos,

                Estou com uma dúvida séria... :¬)
                Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                Estou tendo um NullPointerException na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                Em SessionBeans está funcionando. Nos Entities não está.

                Segue o código do Entity e em seguida o StackTrace:

                @Entity
                @PrimaryKeyJoinColumn(name="ID")
                public class AmbienteInstanciado extends Ambiente {

                    @EJB(name="DAORelacionamentoBean/local")
                    DAORelacionamento<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosDAO;

                    private Set<AmbienteInstanciadoUsuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciadoUsuarios>();

                    @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                    private Set<AmbienteInstanciadoUsuarios> getMapeamentoUsuarios() {
                        return this.mapeamentoUsuarios;
                    }

                    private void setMapeamentoUsuarios(Set<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuarios) {
                        this.mapeamentoUsuarios = ambienteInstanciadoUsuarios;
                    }

                    public void setUsuarios(List<Usuario> usuarios) {
                        List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                        List<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosRemove = new LinkedList<AmbienteInstanciadoUsuarios>();
                //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                        TreeSet<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosNew = new TreeSet<AmbienteInstanciadoUsuarios>();
                        for (AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios : getMapeamentoUsuarios()){
                            Usuario usuario = ambienteInstanciadoUsuarios.getUsuario();
                            Integer position = usuarios.indexOf(usuario);
                            if (position != -1) {
                                ambienteInstanciadoUsuarios.setSequencia(new Integer(position.toString()));
                                ambienteInstanciadoUsuariosNew.add(ambienteInstanciadoUsuarios);
                            } else {
                //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                ambienteInstanciadoUsuariosRemove.add(ambienteInstanciadoUsuarios);
                            }
                //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                            usuariosAdd.remove(usuario);
                        }
                //        Removendo usuarios
                        for (AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios : ambienteInstanciadoUsuariosRemove) {
                            getAmbienteInstanciadoUsuariosDAO().remove(ambienteInstanciadoUsuarios); Aqui poderia ter dado erro se tivesse entrado neste for!!!
                        }
                //        Adicionando usuarios
                        for (Usuario usuario : usuariosAdd){
                            Integer position = usuarios.indexOf(usuario);
                            AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios = new AmbienteInstanciadoUsuarios(usuario, this, new Integer(position.toString()));
                            getAmbienteInstanciadoUsuariosDAO().persist(ambienteInstanciadoUsuarios); Aqui deu NullPointerException. Com um System.out.println(
                getAmbienteInstanciadoUsuariosDAO()), tive a confirmação de que este era "null".
                            ambienteInstanciadoUsuariosNew.add(ambienteInstanciadoUsuarios);
                        }
                        this.mapeamentoUsuarios = ambienteInstanciadoUsuariosNew;
                    }

                    @Transient
                    private DAORelacionamento<AmbienteInstanciadoUsuarios> getAmbienteInstanciadoUsuariosDAO() {
                        return ambienteInstanciadoUsuariosDAO;
                    }

                }

                Agora, o StackTrace. Reparem as linhas em negrito:

                javax.ejb.EJBException: java.lang.NullPointerException
                    at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
                    at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
                    at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
                    at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:211)
                    at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79)
                    at $Proxy32.teste(Unknown Source)
                    at br.ufrj.cos.lens.taba.testes.TesteTaba.testTeste(TesteTaba.java:34)
                    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.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
                    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
                    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
                    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
                    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
                    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
                    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
                    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
                    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
                    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
                    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
                    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
                Caused by: java.lang.NullPointerException
                    at br.ufrj.cos.lens.taba.model.tables.AmbienteInstanciado.setUsuarios(AmbienteInstanciado.java:253)

                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.insertUsuarioAmbienteInstanciado(MapeamentoCT01.java:57)
                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.inserirObjetoListaDestinoVazia(MapeamentoCT01.java:84)
                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.inserirObjetoListaDestino(MapeamentoCT01.java:120)
                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.teste(MapeamentoCT01.java:34)
                    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.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:121)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:110)
                    at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
                    at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                    at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
                    ... 37 more

                Agradeço muitíssimo aos que puderem me ajudar.
                Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                Abraço a todos e obrigado pelo seu tempo.

                -- 
                Peter P. Lupo
                Undergraduating in Computer Science DCC/UFRJ
                Sun Certified Java Associate
                http://pplupo.googlepages.com/ Cell. +55 (021) 81742487




                --
                Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                Sun Certified Programmer for Java 2 Platform 1.2
                Sun Certified Web Component Developer for J2EE Platform 1.3
                Sun Certified Web Component Developer for J2EE Platform 1.4
                Sun Certified Business Component Developer for J2EE Platform 1.3
                Sun Certified Enterprise Architect for J2EE Platform - Part I
                Sun Certified Programmer for Java 2 Platform 5.0
                Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                Sun Certified Associate for the Java 2 Platform 1.0

                E-mail/MSN/Google Talk: juarez.barbosa@...
                MGJUG: juarez.barbosa@...
                GSM Mobile: +5531 9208 5948
              • André Pinto
                Bom Peter, Fico triste em informar, mas pelo o que li: entity beans so classes que representam *dados* no banco de dados *apenas isso* e nada mais, alm disso
                Message 7 of 17 , Mar 12, 2007
                  Bom Peter,


                  Fico triste em informar, mas pelo o que li: "entity beans" são classes que representam *dados* no banco de dados *apenas isso* e nada mais, além disso são "gerenciadas" pelo entity manager... Cara, não li nada sobre injeção de dependência em *entities* nem se as mesmas têm acesso ao JNDI...

                  Mas sinceridade, pensa bem, se os entities representam dados no banco de dados, faz sentido ele ter "processamento" ou funcionalidades provenientes de outros componentes?!  Acho que não... hehehe ;)

                  Vamos ver o que o pessoal da lista tem a dizer... Realmente o papo e bom ;)

                  Vou te falar uma coisa, teve um dia que eu estava pensando: nos meus primórdios de Orientação a Objetos. a grande coisa era os dados ficarem "juntos" da funcionlidade, o encapsulamento... O objeto é composto de dados e funções.... O modelo de EJBs de fato separa as "entidades"  (entity beans) das funções (session beans) e isso realmente é "curioso" ;)

                  abs,

                  André Pinto




                  Peter escreveu:

                  Só um complemento: eu sei reconhecer uma gambiarra quando vejo e tudo o que penso nessa hora é "espero não ter que fazer este tipo de coisa novamente".. . o problema é quando não dá pra escapar por motivos "superiores" ... Então, por favor, me dêem uma forcinha com este problema, pq o design OO está o melhor possível (pelo menos nenhuma gambiarra vai se manifestar na interface dos entities... assim o controle fica salvo e um dia espero poder consertar isso). :¬)

                  E aí André... vc que já leu o livro de referência... sabe a resposta pra pergunta no subject?
                  *cruzando os dedos*

                  Peter P. Lupo
                  Undergraduating in Computer Science DCC/UFRJ
                  Sun Certified Java Associate
                  http://pplupo. googlepages. com/
                  Cell. +55 (021) 81742487


                  André Pinto wrote:

                  Sinceramente eu tentaria remodelar as classes e fazer de outra maneira o que você está precisando.

                  abs,

                  André

                  Peter escreveu:

                  Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no entity.

                  De qualquer forma, preciso de um entity manager lá...
                  A única forma que consegui até agora foi usando um EntityManagerFactor y para conseguir uma instância de EntityManager, mas isto só deveria ser usado fora do container.

                  E aí? Alguma sugestão?

                  Abraço.

                  Peter P. Lupo
                  Undergraduating in Computer Science DCC/UFRJ
                  Sun Certified Java Associate
                  http://pplupo. googlepages. com/
                  Cell. +55 (021) 81742487



                • Peter
                  Oi Juarez! Obrigado pela dica. Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext.
                  Message 8 of 17 , Mar 12, 2007
                    Oi Juarez! Obrigado pela dica.

                    Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext.

                    Abraço.
                    Peter P. Lupo
                    Undergraduating in Computer Science DCC/UFRJ
                    Sun Certified Java Associate
                    http://pplupo.googlepages.com/
                    Cell. +55 (021) 81742487


                    Juarez Junior wrote:

                    Peter,

                    Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                    []'s

                    Juarez Junior



                    On 3/11/07, Peter <peterplupo@gmail. com> wrote:

                    Amigos,

                    Estou com uma dúvida séria... :¬)
                    Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                    Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                    Estou tendo um NullPointerExceptio n na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                    O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                    Em SessionBeans está funcionando. Nos Entities não está.

                    Segue o código do Entity e em seguida o StackTrace:

                    @Entity
                    @PrimaryKeyJoinColu mn(name="ID")
                    public class AmbienteInstanciado extends Ambiente {

                        @EJB(name="DAORelacionamentoBe an/local")
                        DAORelacionamento<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosDAO;

                        private Set<AmbienteInstanciado Usuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciado Usuarios>();

                        @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                        private Set<AmbienteInstanciado Usuarios> getMapeamentoUsuari os() {
                            return this.mapeamentoUsua rios;
                        }

                        private void setMapeamentoUsuari os(Set<AmbienteInstanciado Usuarios> ambienteInstanciado Usuarios) {
                            this.mapeamentoUsua rios = ambienteInstanciado Usuarios;
                        }

                        public void setUsuarios( List<Usuario> usuarios) {
                            List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                            List<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosRemove = new LinkedList<AmbienteInstanciado Usuarios>();
                    //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                            TreeSet<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosNew = new TreeSet<AmbienteInstanciado Usuarios>();
                            for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : getMapeamentoUsuari os()){
                                Usuario usuario = ambienteInstanciado Usuarios. getUsuario( );
                                Integer position = usuarios.indexOf( usuario);
                                if (position != -1) {
                                    ambienteInstanciado Usuarios. setSequencia( new Integer(position. toString( )));
                                    ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                } else {
                    //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                    ambienteInstanciado UsuariosRemove. add(ambienteInst anciadoUsuarios) ;
                                }
                    //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                                usuariosAdd. remove(usuario) ;
                            }
                    //        Removendo usuarios
                            for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : ambienteInstanciado UsuariosRemove) {
                                getAmbienteInstanci adoUsuariosDAO( ).remove( ambienteInstanci adoUsuarios) ; Aqui poderia ter dado erro se tivesse entrado neste for!!!
                            }
                    //        Adicionando usuarios
                            for (Usuario usuario : usuariosAdd) {
                                Integer position = usuarios.indexOf( usuario);
                                AmbienteInstanciado Usuarios ambienteInstanciado Usuarios = new AmbienteInstanciado Usuarios( usuario, this, new Integer(position. toString( )));
                                getAmbienteInstanci adoUsuariosDAO( ).persist( ambienteInstanci adoUsuarios) ; Aqui deu NullPointerExceptio n. Com um System.out.println(
                    getAmbienteInstanci adoUsuariosDAO( )), tive a confirmação de que este era "null".
                                ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                            }
                            this.mapeamentoUsua rios = ambienteInstanciado UsuariosNew;
                        }

                        @Transient
                        private DAORelacionamento<AmbienteInstanciado Usuarios> getAmbienteInstanci adoUsuariosDAO( ) {
                            return ambienteInstanciado UsuariosDAO;
                        }

                    }

                    Agora, o StackTrace. Reparem as linhas em negrito:

                    javax.ejb.EJBExcept ion: java.lang.NullPoint erException
                        at org.jboss.ejb3. tx.Ejb3TxPolicy. handleExceptionI nOurTx(Ejb3TxPol icy.java: 69)
                        at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:83)
                        at org.jboss.aspects. tx.TxInterceptor $Required. invoke(TxInterce ptor.java: 197)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.aspects. tx.TxPropagation Interceptor. invoke(TxPropaga tionInterceptor. java:76)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.ejb3. stateless. StatelessInstanc eInterceptor. invoke(Stateless InstanceIntercep tor.java: 62)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.aspects. security. AuthenticationIn terceptor. invoke(Authentic ationInterceptor .java:77)
                        at org.jboss.ejb3. security. Ejb3Authenticati onInterceptor. invoke(Ejb3Authe nticationInterce ptor.java: 102)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.ejb3. ENCPropagationIn terceptor. invoke(ENCPropag ationInterceptor .java:47)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.ejb3. asynchronous. AsynchronousInte rceptor.invoke( AsynchronousInte rceptor.java: 106)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.ejb3. stateless. StatelessContain er.localInvoke( StatelessContain er.java:211)
                        at org.jboss.ejb3. stateless. StatelessLocalPr oxy.invoke( StatelessLocalPr oxy.java: 79)
                        at $Proxy32.teste( Unknown Source)
                        at br.ufrj.cos. lens.taba. testes.TesteTaba .testTeste( TesteTaba. java:34)
                        at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                        at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                        at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                        at java.lang.reflect. Method.invoke( Unknown Source)
                        at org.junit.internal. runners.TestMeth odRunner. executeMethodBod y(TestMethodRunn er.java:99)
                        at org.junit.internal. runners.TestMeth odRunner. runUnprotected( TestMethodRunner .java:81)
                        at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                        at org.junit.internal. runners.TestMeth odRunner. runMethod( TestMethodRunner .java:75)
                        at org.junit.internal. runners.TestMeth odRunner. run(TestMethodRu nner.java: 45)
                        at org.junit.internal. runners.TestClas sMethodsRunner. invokeTestMethod (TestClassMethod sRunner.java: 71)
                        at org.junit.internal. runners.TestClas sMethodsRunner. run(TestClassMet hodsRunner. java:35)
                        at org.junit.internal. runners.TestClas sRunner$1. runUnprotected( TestClassRunner. java:42)
                        at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                        at org.junit.internal. runners.TestClas sRunner.run( TestClassRunner. java:52)
                        at org.eclipse. jdt.internal. junit4.runner. JUnit4TestRefere nce.run(JUnit4Te stReference. java:38)
                        at org.eclipse. jdt.internal. junit.runner. TestExecution. run(TestExecutio n.java:38)
                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:460)
                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:673)
                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .run(RemoteTestR unner.java: 386)
                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .main(RemoteTest Runner.java: 196)
                    Caused by: java.lang.NullPoint erException
                        at br.ufrj.cos. lens.taba. model.tables. AmbienteInstanci ado.setUsuarios( AmbienteInstanci ado.java: 253)

                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.insertUsua rioAmbienteInsta nciado(Mapeament oCT01.java: 57)
                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestinoV azia(MapeamentoC T01.java: 84)
                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestino( MapeamentoCT01. java:120)
                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.teste( MapeamentoCT01. java:34)
                        at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                        at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                        at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                        at java.lang.reflect. Method.invoke( Unknown Source)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeTarget( MethodInvocation .java:121)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:110)
                        at org.jboss.ejb3. interceptor. InvocationContex tImpl.proceed( InvocationContex tImpl.java: 166)
                        at org.jboss.ejb3. interceptor. EJB3Interceptors Interceptor. invoke(EJB3Inter ceptorsIntercept or.java:63)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.ejb3. entity.Transacti onScopedEntityMa nagerInterceptor .invoke(Transact ionScopedEntityM anagerIntercepto r.java:54)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.ejb3. AllowedOperation sInterceptor. invoke(AllowedOp erationsIntercep tor.java: 47)
                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                        at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:79)
                        ... 37 more

                    Agradeço muitíssimo aos que puderem me ajudar.
                    Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                    Abraço a todos e obrigado pelo seu tempo.

                    -- 
                    Peter P. Lupo
                    Undergraduating in Computer Science DCC/UFRJ
                    Sun Certified Java Associate
                    
                    http://pplupo. googlepages. com/
                    Cell. +55 (021) 81742487



                    --
                    Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                    Sun Certified Programmer for Java 2 Platform 1.2
                    Sun Certified Web Component Developer for J2EE Platform 1.3
                    Sun Certified Web Component Developer for J2EE Platform 1.4
                    Sun Certified Business Component Developer for J2EE Platform 1.3
                    Sun Certified Enterprise Architect for J2EE Platform - Part I
                    Sun Certified Programmer for Java 2 Platform 5.0
                    Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                    Sun Certified Associate for the Java 2 Platform 1.0

                    E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                    MGJUG: juarez.barbosa@ mgjug.com. br
                    GSM Mobile: +5531 9208 5948
                  • Juarez Junior
                    Andre, Nao esqueca que entity beans e entities sao coisas diferentes, do EJB 2.1para 3.0... Eu ja tive problemas de DI como informei na minha resposta
                    Message 9 of 17 , Mar 12, 2007
                      Andre,

                      Nao esqueca que entity beans e entities sao coisas diferentes, do EJB 2.1 para 3.0...

                      Eu ja tive problemas de DI como informei na minha resposta anterior, mas talvez nao seja o caso.

                      Abracos,

                      Juarez Jr


                      On 3/12/07, André Pinto <andrepinto40@...> wrote:

                      Bom Peter,


                      Fico triste em informar, mas pelo o que li: "entity beans" são classes que representam *dados* no banco de dados *apenas isso* e nada mais, além disso são "gerenciadas" pelo entity manager... Cara, não li nada sobre injeção de dependência em *entities* nem se as mesmas têm acesso ao JNDI...

                      Mas sinceridade, pensa bem, se os entities representam dados no banco de dados, faz sentido ele ter "processamento" ou funcionalidades provenientes de outros componentes?!  Acho que não... hehehe ;)

                      Vamos ver o que o pessoal da lista tem a dizer... Realmente o papo e bom ;)

                      Vou te falar uma coisa, teve um dia que eu estava pensando: nos meus primórdios de Orientação a Objetos. a grande coisa era os dados ficarem "juntos" da funcionlidade, o encapsulamento... O objeto é composto de dados e funções.... O modelo de EJBs de fato separa as "entidades"  (entity beans) das funções (session beans) e isso realmente é "curioso" ;)

                      abs,

                      André Pinto




                      Peter escreveu:

                      Só um complemento: eu sei reconhecer uma gambiarra quando vejo e tudo o que penso nessa hora é "espero não ter que fazer este tipo de coisa novamente"... o problema é quando não dá pra escapar por motivos "superiores"... Então, por favor, me dêem uma forcinha com este problema, pq o design OO está o melhor possível (pelo menos nenhuma gambiarra vai se manifestar na interface dos entities... assim o controle fica salvo e um dia espero poder consertar isso). :¬)

                      E aí André... vc que já leu o livro de referência... sabe a resposta pra pergunta no subject?
                      *cruzando os dedos*

                      Peter P. Lupo
                      Undergraduating in Computer Science DCC/UFRJ
                      Sun Certified Java Associate
                      http://pplupo.googlepages.com/ Cell. +55 (021) 81742487


                      André Pinto wrote:

                      Sinceramente eu tentaria remodelar as classes e fazer de outra maneira o que você está precisando.

                      abs,

                      André

                      Peter escreveu:

                      Ok, realmente ñ faz muito sentido, mas como consigo injetar um entity manager em um session e não consegui injetá-lo no entity, tentei injetar o session no entity.

                      De qualquer forma, preciso de um entity manager lá...
                      A única forma que consegui até agora foi usando um EntityManagerFactory para conseguir uma instância de EntityManager, mas isto só deveria ser usado fora do container.

                      E aí? Alguma sugestão?

                      Abraço.

                      Peter P. Lupo
                      Undergraduating in Computer Science DCC/UFRJ
                      Sun Certified Java Associate
                      http://pplupo.googlepages.com/ Cell. +55 (021) 81742487






                      --
                      Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                      Sun Certified Programmer for Java 2 Platform 1.2
                      Sun Certified Web Component Developer for J2EE Platform 1.3
                      Sun Certified Web Component Developer for J2EE Platform 1.4
                      Sun Certified Business Component Developer for J2EE Platform 1.3
                      Sun Certified Enterprise Architect for J2EE Platform - Part I
                      Sun Certified Programmer for Java 2 Platform 5.0
                      Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                      Sun Certified Associate for the Java 2 Platform 1.0

                      E-mail/MSN/Google Talk: juarez.barbosa@...
                      MGJUG: juarez.barbosa@...
                      GSM Mobile: +5531 9208 5948
                    • Juarez Junior
                      Opa, bacana. Peter, me da uma dica entao, qual versao de JBoss serie 4.0.xvoce esta usando? 4.0.5??? [] s Juarez Jr ... -- Juarez Junior - Software
                      Message 10 of 17 , Mar 12, 2007
                        Opa, bacana. Peter, me da uma dica entao, qual versao de JBoss serie 4.0.x voce esta usando? 4.0.5???

                        []'s

                        Juarez Jr


                        On 3/12/07, Peter <peterplupo@...> wrote:

                        Oi Juarez! Obrigado pela dica.

                        Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext.

                        Abraço.

                        Peter P. Lupo
                        Undergraduating in Computer Science DCC/UFRJ
                        Sun Certified Java Associate
                        http://pplupo.googlepages.com/
                        Cell. +55 (021) 81742487


                        Juarez Junior wrote:

                        Peter,

                        Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                        []'s

                        Juarez Junior



                        On 3/11/07, Peter <peterplupo@... > wrote:

                        Amigos,

                        Estou com uma dúvida séria... :¬)
                        Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                        Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                        Estou tendo um NullPointerException na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                        O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                        Em SessionBeans está funcionando. Nos Entities não está.

                        Segue o código do Entity e em seguida o StackTrace:

                        @Entity
                        @PrimaryKeyJoinColumn(name="ID")
                        public class AmbienteInstanciado extends Ambiente {

                            @EJB(name="DAORelacionamentoBean/local")
                            DAORelacionamento<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosDAO;

                            private Set<AmbienteInstanciadoUsuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciadoUsuarios>();

                            @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                            private Set<AmbienteInstanciadoUsuarios> getMapeamentoUsuarios() {
                                return this.mapeamentoUsuarios;
                            }

                            private void setMapeamentoUsuarios(Set<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuarios) {
                                this.mapeamentoUsuarios = ambienteInstanciadoUsuarios;
                            }

                            public void setUsuarios(List<Usuario> usuarios) {
                                List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                                List<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosRemove = new LinkedList<AmbienteInstanciadoUsuarios>();
                        //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                                TreeSet<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosNew = new TreeSet<AmbienteInstanciadoUsuarios>();
                                for (AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios : getMapeamentoUsuarios()){
                                    Usuario usuario = ambienteInstanciadoUsuarios.getUsuario();
                                    Integer position = usuarios.indexOf(usuario);
                                    if (position != -1) {
                                        ambienteInstanciadoUsuarios.setSequencia(new Integer(position.toString()));
                                        ambienteInstanciadoUsuariosNew.add(ambienteInstanciadoUsuarios);
                                    } else {
                        //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                        ambienteInstanciadoUsuariosRemove.add(ambienteInstanciadoUsuarios);
                                    }
                        //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                                    usuariosAdd.remove(usuario);
                                }
                        //        Removendo usuarios
                                for (AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios : ambienteInstanciadoUsuariosRemove) {
                                    getAmbienteInstanciadoUsuariosDAO().remove(ambienteInstanciadoUsuarios); Aqui poderia ter dado erro se tivesse entrado neste for!!!
                                }
                        //        Adicionando usuarios
                                for (Usuario usuario : usuariosAdd){
                                    Integer position = usuarios.indexOf(usuario);
                                    AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios = new AmbienteInstanciadoUsuarios(usuario, this, new Integer(position.toString()));
                                    getAmbienteInstanciadoUsuariosDAO().persist(ambienteInstanciadoUsuarios); Aqui deu NullPointerException. Com um System.out.println(
                        getAmbienteInstanciadoUsuariosDAO()), tive a confirmação de que este era "null".
                                    ambienteInstanciadoUsuariosNew.add(ambienteInstanciadoUsuarios);
                                }
                                this.mapeamentoUsuarios = ambienteInstanciadoUsuariosNew;
                            }

                            @Transient
                            private DAORelacionamento<AmbienteInstanciadoUsuarios> getAmbienteInstanciadoUsuariosDAO() {
                                return ambienteInstanciadoUsuariosDAO;
                            }

                        }

                        Agora, o StackTrace. Reparem as linhas em negrito:

                        javax.ejb.EJBException: java.lang.NullPointerException
                            at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
                            at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
                            at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
                            at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:211)
                            at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79)
                            at $Proxy32.teste(Unknown Source)
                            at br.ufrj.cos.lens.taba.testes.TesteTaba.testTeste(TesteTaba.java:34)
                            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.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
                            at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
                            at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
                            at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
                            at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
                            at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
                            at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
                            at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
                            at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
                            at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
                            at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
                            at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
                            at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
                            at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
                            at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
                            at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
                        Caused by: java.lang.NullPointerException
                            at br.ufrj.cos.lens.taba.model.tables.AmbienteInstanciado.setUsuarios(AmbienteInstanciado.java:253)

                            at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.insertUsuarioAmbienteInstanciado(MapeamentoCT01.java:57)
                            at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.inserirObjetoListaDestinoVazia(MapeamentoCT01.java:84)
                            at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.inserirObjetoListaDestino(MapeamentoCT01.java:120)
                            at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.teste(MapeamentoCT01.java:34)
                            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.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:121)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:110)
                            at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
                            at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
                            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                            at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
                            ... 37 more

                        Agradeço muitíssimo aos que puderem me ajudar.
                        Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                        Abraço a todos e obrigado pelo seu tempo.

                        -- 
                        Peter P. Lupo
                        Undergraduating in Computer Science DCC/UFRJ
                        Sun Certified Java Associate

                        http://pplupo.googlepages.com/

                        Cell. +55 (021) 81742487



                        --
                        Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                        Sun Certified Programmer for Java 2 Platform 1.2
                        Sun Certified Web Component Developer for J2EE Platform 1.3
                        Sun Certified Web Component Developer for J2EE Platform 1.4
                        Sun Certified Business Component Developer for J2EE Platform 1.3
                        Sun Certified Enterprise Architect for J2EE Platform - Part I
                        Sun Certified Programmer for Java 2 Platform 5.0
                        Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                        Sun Certified Associate for the Java 2 Platform 1.0

                        E-mail/MSN/Google Talk: juarez.barbosa@...
                        MGJUG: juarez.barbosa@...
                        GSM Mobile: +5531 9208 5948




                        --
                        Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                        Sun Certified Programmer for Java 2 Platform 1.2
                        Sun Certified Web Component Developer for J2EE Platform 1.3
                        Sun Certified Web Component Developer for J2EE Platform 1.4
                        Sun Certified Business Component Developer for J2EE Platform 1.3
                        Sun Certified Enterprise Architect for J2EE Platform - Part I
                        Sun Certified Programmer for Java 2 Platform 5.0
                        Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                        Sun Certified Associate for the Java 2 Platform 1.0

                        E-mail/MSN/Google Talk: juarez.barbosa@...
                        MGJUG: juarez.barbosa@...
                        GSM Mobile: +5531 9208 5948
                      • Peter
                        Estou usando a versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬) Abraço! Peter P. Lupo Undergraduating in Computer Science DCC/UFRJ Sun Certified Java
                        Message 11 of 17 , Mar 13, 2007
                          Estou usando a versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)

                          Abraço!
                          Peter P. Lupo
                          Undergraduating in Computer Science DCC/UFRJ
                          Sun Certified Java Associate
                          http://pplupo.googlepages.com/
                          Cell. +55 (021) 81742487


                          Juarez Junior wrote:

                          Opa, bacana. Peter, me da uma dica entao, qual versao de JBoss serie 4.0.x voce esta usando? 4.0.5???

                          []'s

                          Juarez Jr


                          On 3/12/07, Peter <peterplupo@gmail. com> wrote:

                          Oi Juarez! Obrigado pela dica.

                          Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext .

                          Abraço.

                          Peter P. Lupo
                          Undergraduating in Computer Science DCC/UFRJ
                          Sun Certified Java Associate
                          
                          http://pplupo. googlepages. com/
                          Cell. +55 (021) 81742487


                          Juarez Junior wrote:

                          Peter,

                          Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                          []'s

                          Juarez Junior



                          On 3/11/07, Peter <peterplupo@gmail. com > wrote:

                          Amigos,

                          Estou com uma dúvida séria... :¬)
                          Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                          Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                          Estou tendo um NullPointerExceptio n na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                          O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                          Em SessionBeans está funcionando. Nos Entities não está.

                          Segue o código do Entity e em seguida o StackTrace:

                          @Entity
                          @PrimaryKeyJoinColu mn(name="ID")
                          public class AmbienteInstanciado extends Ambiente {

                              @EJB(name="DAORelacionamentoBe an/local")
                              DAORelacionamento<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosDAO;

                              private Set<AmbienteInstanciado Usuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciado Usuarios>();

                              @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                              private Set<AmbienteInstanciado Usuarios> getMapeamentoUsuari os() {
                                  return this.mapeamentoUsua rios;
                              }

                              private void setMapeamentoUsuari os(Set<AmbienteInstanciado Usuarios> ambienteInstanciado Usuarios) {
                                  this.mapeamentoUsua rios = ambienteInstanciado Usuarios;
                              }

                              public void setUsuarios( List<Usuario> usuarios) {
                                  List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                                  List<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosRemove = new LinkedList<AmbienteInstanciado Usuarios>();
                          //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                                  TreeSet<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosNew = new TreeSet<AmbienteInstanciado Usuarios>();
                                  for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : getMapeamentoUsuari os()){
                                      Usuario usuario = ambienteInstanciado Usuarios. getUsuario( );
                                      Integer position = usuarios.indexOf( usuario);
                                      if (position != -1) {
                                          ambienteInstanciado Usuarios. setSequencia( new Integer(position. toString( )));
                                          ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                      } else {
                          //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                          ambienteInstanciado UsuariosRemove. add(ambienteInst anciadoUsuarios) ;
                                      }
                          //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                                      usuariosAdd. remove(usuario) ;
                                  }
                          //        Removendo usuarios
                                  for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : ambienteInstanciado UsuariosRemove) {
                                      getAmbienteInstanci adoUsuariosDAO( ).remove( ambienteInstanci adoUsuarios) ; Aqui poderia ter dado erro se tivesse entrado neste for!!!
                                  }
                          //        Adicionando usuarios
                                  for (Usuario usuario : usuariosAdd) {
                                      Integer position = usuarios.indexOf( usuario);
                                      AmbienteInstanciado Usuarios ambienteInstanciado Usuarios = new AmbienteInstanciado Usuarios( usuario, this, new Integer(position. toString( )));
                                      getAmbienteInstanci adoUsuariosDAO( ).persist( ambienteInstanci adoUsuarios) ; Aqui deu NullPointerExceptio n. Com um System.out.println(
                          getAmbienteInstanci adoUsuariosDAO( )), tive a confirmação de que este era "null".
                                      ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                  }
                                  this.mapeamentoUsua rios = ambienteInstanciado UsuariosNew;
                              }

                              @Transient
                              private DAORelacionamento<AmbienteInstanciado Usuarios> getAmbienteInstanci adoUsuariosDAO( ) {
                                  return ambienteInstanciado UsuariosDAO;
                              }

                          }

                          Agora, o StackTrace. Reparem as linhas em negrito:

                          javax.ejb.EJBExcept ion: java.lang.NullPoint erException
                              at org.jboss.ejb3. tx.Ejb3TxPolicy. handleExceptionI nOurTx(Ejb3TxPol icy.java: 69)
                              at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:83)
                              at org.jboss.aspects. tx.TxInterceptor $Required. invoke(TxInterce ptor.java: 197)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.aspects. tx.TxPropagation Interceptor. invoke(TxPropaga tionInterceptor. java:76)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.ejb3. stateless. StatelessInstanc eInterceptor. invoke(Stateless InstanceIntercep tor.java: 62)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.aspects. security. AuthenticationIn terceptor. invoke(Authentic ationInterceptor .java:77)
                              at org.jboss.ejb3. security. Ejb3Authenticati onInterceptor. invoke(Ejb3Authe nticationInterce ptor.java: 102)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.ejb3. ENCPropagationIn terceptor. invoke(ENCPropag ationInterceptor .java:47)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.ejb3. asynchronous. AsynchronousInte rceptor.invoke( AsynchronousInte rceptor.java: 106)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.ejb3. stateless. StatelessContain er.localInvoke( StatelessContain er.java:211)
                              at org.jboss.ejb3. stateless. StatelessLocalPr oxy.invoke( StatelessLocalPr oxy.java: 79)
                              at $Proxy32.teste( Unknown Source)
                              at br.ufrj.cos. lens.taba. testes.TesteTaba .testTeste( TesteTaba. java:34)
                              at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                              at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                              at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                              at java.lang.reflect. Method.invoke( Unknown Source)
                              at org.junit.internal. runners.TestMeth odRunner. executeMethodBod y(TestMethodRunn er.java:99)
                              at org.junit.internal. runners.TestMeth odRunner. runUnprotected( TestMethodRunner .java:81)
                              at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                              at org.junit.internal. runners.TestMeth odRunner. runMethod( TestMethodRunner .java:75)
                              at org.junit.internal. runners.TestMeth odRunner. run(TestMethodRu nner.java: 45)
                              at org.junit.internal. runners.TestClas sMethodsRunner. invokeTestMethod (TestClassMethod sRunner.java: 71)
                              at org.junit.internal. runners.TestClas sMethodsRunner. run(TestClassMet hodsRunner. java:35)
                              at org.junit.internal. runners.TestClas sRunner$1. runUnprotected( TestClassRunner. java:42)
                              at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                              at org.junit.internal. runners.TestClas sRunner.run( TestClassRunner. java:52)
                              at org.eclipse. jdt.internal. junit4.runner. JUnit4TestRefere nce.run(JUnit4Te stReference. java:38)
                              at org.eclipse. jdt.internal. junit.runner. TestExecution. run(TestExecutio n.java:38)
                              at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:460)
                              at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:673)
                              at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .run(RemoteTestR unner.java: 386)
                              at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .main(RemoteTest Runner.java: 196)
                          Caused by: java.lang.NullPoint erException
                              at br.ufrj.cos. lens.taba. model.tables. AmbienteInstanci ado.setUsuarios( AmbienteInstanci ado.java: 253)

                              at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.insertUsua rioAmbienteInsta nciado(Mapeament oCT01.java: 57)
                              at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestinoV azia(MapeamentoC T01.java: 84)
                              at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestino( MapeamentoCT01. java:120)
                              at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.teste( MapeamentoCT01. java:34)
                              at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                              at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                              at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                              at java.lang.reflect. Method.invoke( Unknown Source)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeTarget( MethodInvocation .java:121)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:110)
                              at org.jboss.ejb3. interceptor. InvocationContex tImpl.proceed( InvocationContex tImpl.java: 166)
                              at org.jboss.ejb3. interceptor. EJB3Interceptors Interceptor. invoke(EJB3Inter ceptorsIntercept or.java:63)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.ejb3. entity.Transacti onScopedEntityMa nagerInterceptor .invoke(Transact ionScopedEntityM anagerIntercepto r.java:54)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.ejb3. AllowedOperation sInterceptor. invoke(AllowedOp erationsIntercep tor.java: 47)
                              at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                              at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:79)
                              ... 37 more

                          Agradeço muitíssimo aos que puderem me ajudar.
                          Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                          Abraço a todos e obrigado pelo seu tempo.

                          -- 
                          Peter P. Lupo
                          Undergraduating in Computer Science DCC/UFRJ
                          Sun Certified Java Associate
                          
                          
                          http://pplupo. googlepages. com/
                          Cell. +55 (021) 81742487



                          --
                          Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                          Sun Certified Programmer for Java 2 Platform 1.2
                          Sun Certified Web Component Developer for J2EE Platform 1.3
                          Sun Certified Web Component Developer for J2EE Platform 1.4
                          Sun Certified Business Component Developer for J2EE Platform 1.3
                          Sun Certified Enterprise Architect for J2EE Platform - Part I
                          Sun Certified Programmer for Java 2 Platform 5.0
                          Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                          Sun Certified Associate for the Java 2 Platform 1.0

                          E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                          MGJUG: juarez.barbosa@ mgjug.com. br
                          GSM Mobile: +5531 9208 5948



                          --
                          Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                          Sun Certified Programmer for Java 2 Platform 1.2
                          Sun Certified Web Component Developer for J2EE Platform 1.3
                          Sun Certified Web Component Developer for J2EE Platform 1.4
                          Sun Certified Business Component Developer for J2EE Platform 1.3
                          Sun Certified Enterprise Architect for J2EE Platform - Part I
                          Sun Certified Programmer for Java 2 Platform 5.0
                          Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                          Sun Certified Associate for the Java 2 Platform 1.0

                          E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                          MGJUG: juarez.barbosa@ mgjug.com. br
                          GSM Mobile: +5531 9208 5948
                        • Antonio Carlos de Souza
                          Olá, Já pensou em recuperar o EntityManager no EJB(session bean) e passar, via contrutor, ao entity? [], AC ... Olá, Já pensou em recuperar o EntityManager
                          Message 12 of 17 , Mar 13, 2007
                            Olá,

                                Já pensou em recuperar o EntityManager no EJB(session bean) e passar, via contrutor, ao entity?

                            [],
                            AC

                            On 3/12/07, Peter < peterplupo@...> wrote:

                            Oi Juarez! Obrigado pela dica.

                            Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext.

                            Abraço.

                            Peter P. Lupo
                            Undergraduating in Computer Science DCC/UFRJ
                            Sun Certified Java Associate
                            http://pplupo.googlepages.com/ Cell. +55 (021) 81742487
                            [...]


                          • Peter
                            É uma possível solução. A questão é que, como eu disse num e-mail anterior, esse problema está acontecendo por motivos de compatibilidade com um sistema
                            Message 13 of 17 , Mar 13, 2007
                              É uma possível solução.
                              A questão é que, como eu disse num e-mail anterior, esse problema está acontecendo por motivos de compatibilidade com um sistema que deixará de ser usado. Quando isto acontecer, uma parte do modelo será re-escrita (para remover essas idiossincrasias). Por este motivo, não gostaria que a interface do modelo fosse modificada para atender a este requisito que não será necessário no futuro. As mudanças acabariam impactando na camada de controle, entende?
                              Mas não descarto essa solução não. Se for a única encontrada, pode ser que seja adotada. Obrigado AC.

                              E aí? Alguém mais tem alguma resposta pra questão do JNDI no Entity?

                              Abraço a todos!
                              Peter P. Lupo
                              Undergraduating in Computer Science DCC/UFRJ
                              Sun Certified Java Associate
                              http://pplupo.googlepages.com/
                              Cell. +55 (021) 81742487


                              Antonio Carlos de Souza wrote:

                              Olá,

                                  Já pensou em recuperar o EntityManager no EJB(session bean) e passar, via contrutor, ao entity?

                              [],
                              AC

                              On 3/12/07, Peter < peterplupo@gmail. com> wrote:

                              Oi Juarez! Obrigado pela dica.

                              Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext .

                              Abraço.

                              Peter P. Lupo
                              Undergraduating in Computer Science DCC/UFRJ
                              Sun Certified Java Associate
                              
                              http://pplupo. googlepages. com/
                              Cell. +55 (021) 81742487
                              [...]


                            • Juarez Junior
                              Peter, versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬) Eu nao consegui entender sobre sua versao do JBoss, ate onde sei o JBoss usa um esquema de
                              Message 14 of 17 , Mar 13, 2007
                                Peter,

                                "versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)"
                                Eu nao consegui entender sobre sua versao do JBoss, ate onde sei o JBoss usa um esquema de versionamento tipo 3.2.8 ou 4.0.5. Nao vi nada parecido...

                                Hum...eu estou precisando muito para um modulo que vamos colocar no ar com EJB 3.0, eu mesmo vou fazer o teste aqui. Numa versao anterior do JBoss nao suportava @EJB para refs EJB, entao usamos um Service Locator. Mas agora eu quero injetar tudo, entao surgiu a duvida.

                                Preciso saber qual versao do JBoss suporta a annotation @EJB para referencias EJB 3.0 e nao somente para o EntityManager. Agradeco apoio da galera do JUG ;)

                                Peter, de qualquer forma agradeco...qualquer coisa estamos ai na lista tambem.

                                Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                Sun Certified Programmer for Java 2 Platform 1.2
                                Sun Certified Web Component Developer for J2EE Platform 1.3
                                Sun Certified Web Component Developer for J2EE Platform 1.4
                                Sun Certified Business Component Developer for J2EE Platform 1.3
                                Sun Certified Enterprise Architect for J2EE Platform - Part I
                                Sun Certified Programmer for Java 2 Platform 5.0
                                Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                Sun Certified Associate for the Java 2 Platform 1.0

                                E-mail/MSN/Google Talk: juarez.barbosa@...
                                MGJUG: juarez.barbosa@...
                                GSM Mobile: +5531 9208 5948



                                On 3/13/07, Peter <peterplupo@...> wrote:

                                Estou usando a versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)

                                Abraço!

                                Peter P. Lupo
                                Undergraduating in Computer Science DCC/UFRJ
                                Sun Certified Java Associate
                                http://pplupo.googlepages.com/ Cell. +55 (021) 81742487


                                Juarez Junior wrote:

                                Opa, bacana. Peter, me da uma dica entao, qual versao de JBoss serie 4.0.x voce esta usando? 4.0.5???

                                []'s

                                Juarez Jr


                                On 3/12/07, Peter <peterplupo@...> wrote:

                                Oi Juarez! Obrigado pela dica.

                                Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext.

                                Abraço.

                                Peter P. Lupo
                                Undergraduating in Computer Science DCC/UFRJ
                                Sun Certified Java Associate
                                http://pplupo.googlepages.com/ Cell. +55 (021) 81742487


                                Juarez Junior wrote:

                                Peter,

                                Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                                []'s

                                Juarez Junior



                                On 3/11/07, Peter <peterplupo@... > wrote:

                                Amigos,

                                Estou com uma dúvida séria... :¬)
                                Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                                Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                                Estou tendo um NullPointerException na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                                O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                                Em SessionBeans está funcionando. Nos Entities não está.

                                Segue o código do Entity e em seguida o StackTrace:

                                @Entity
                                @PrimaryKeyJoinColumn(name="ID")
                                public class AmbienteInstanciado extends Ambiente {

                                    @EJB(name="DAORelacionamentoBean/local")
                                    DAORelacionamento<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosDAO;

                                    private Set<AmbienteInstanciadoUsuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciadoUsuarios>();

                                    @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                                    private Set<AmbienteInstanciadoUsuarios> getMapeamentoUsuarios() {
                                        return this.mapeamentoUsuarios;
                                    }

                                    private void setMapeamentoUsuarios(Set<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuarios) {
                                        this.mapeamentoUsuarios = ambienteInstanciadoUsuarios;
                                    }

                                    public void setUsuarios(List<Usuario> usuarios) {
                                        List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                                        List<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosRemove = new LinkedList<AmbienteInstanciadoUsuarios>();
                                //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                                        TreeSet<AmbienteInstanciadoUsuarios> ambienteInstanciadoUsuariosNew = new TreeSet<AmbienteInstanciadoUsuarios>();
                                        for (AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios : getMapeamentoUsuarios()){
                                            Usuario usuario = ambienteInstanciadoUsuarios.getUsuario();
                                            Integer position = usuarios.indexOf(usuario);
                                            if (position != -1) {
                                                ambienteInstanciadoUsuarios.setSequencia(new Integer(position.toString()));
                                                ambienteInstanciadoUsuariosNew.add(ambienteInstanciadoUsuarios);
                                            } else {
                                //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                                ambienteInstanciadoUsuariosRemove.add(ambienteInstanciadoUsuarios);
                                            }
                                //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                                            usuariosAdd.remove(usuario);
                                        }
                                //        Removendo usuarios
                                        for (AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios : ambienteInstanciadoUsuariosRemove) {
                                            getAmbienteInstanciadoUsuariosDAO().remove(ambienteInstanciadoUsuarios); Aqui poderia ter dado erro se tivesse entrado neste for!!!
                                        }
                                //        Adicionando usuarios
                                        for (Usuario usuario : usuariosAdd){
                                            Integer position = usuarios.indexOf(usuario);
                                            AmbienteInstanciadoUsuarios ambienteInstanciadoUsuarios = new AmbienteInstanciadoUsuarios(usuario, this, new Integer(position.toString()));
                                            getAmbienteInstanciadoUsuariosDAO().persist(ambienteInstanciadoUsuarios); Aqui deu NullPointerException. Com um System.out.println(
                                getAmbienteInstanciadoUsuariosDAO()), tive a confirmação de que este era "null".
                                            ambienteInstanciadoUsuariosNew.add(ambienteInstanciadoUsuarios);
                                        }
                                        this.mapeamentoUsuarios = ambienteInstanciadoUsuariosNew;
                                    }

                                    @Transient
                                    private DAORelacionamento<AmbienteInstanciadoUsuarios> getAmbienteInstanciadoUsuariosDAO() {
                                        return ambienteInstanciadoUsuariosDAO;
                                    }

                                }

                                Agora, o StackTrace. Reparem as linhas em negrito:

                                javax.ejb.EJBException: java.lang.NullPointerException
                                    at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
                                    at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
                                    at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
                                    at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:211)
                                    at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79)
                                    at $Proxy32.teste(Unknown Source)
                                    at br.ufrj.cos.lens.taba.testes.TesteTaba.testTeste(TesteTaba.java:34)
                                    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.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
                                    at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
                                    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
                                    at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
                                    at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
                                    at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
                                    at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
                                    at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
                                    at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
                                    at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
                                    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
                                    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
                                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
                                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
                                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
                                    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
                                Caused by: java.lang.NullPointerException
                                    at br.ufrj.cos.lens.taba.model.tables.AmbienteInstanciado.setUsuarios(AmbienteInstanciado.java:253)

                                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.insertUsuarioAmbienteInstanciado(MapeamentoCT01.java:57)
                                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.inserirObjetoListaDestinoVazia(MapeamentoCT01.java:84)
                                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.inserirObjetoListaDestino(MapeamentoCT01.java:120)
                                    at br.ufrj.cos.lens.taba.testes.MapeamentoCT01.teste(MapeamentoCT01.java:34)
                                    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.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:121)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:110)
                                    at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
                                    at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
                                    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
                                    at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
                                    ... 37 more

                                Agradeço muitíssimo aos que puderem me ajudar.
                                Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                                Abraço a todos e obrigado pelo seu tempo.

                                -- 
                                Peter P. Lupo
                                Undergraduating in Computer Science DCC/UFRJ
                                Sun Certified Java Associate
                                http://pplupo.googlepages.com/ Cell. +55 (021) 81742487



                                --
                                Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                Sun Certified Programmer for Java 2 Platform 1.2
                                Sun Certified Web Component Developer for J2EE Platform 1.3
                                Sun Certified Web Component Developer for J2EE Platform 1.4
                                Sun Certified Business Component Developer for J2EE Platform 1.3
                                Sun Certified Enterprise Architect for J2EE Platform - Part I
                                Sun Certified Programmer for Java 2 Platform 5.0
                                Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                Sun Certified Associate for the Java 2 Platform 1.0

                                E-mail/MSN/Google Talk: juarez.barbosa@...
                                MGJUG: juarez.barbosa@...
                                GSM Mobile: +5531 9208 5948



                                --
                                Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                Sun Certified Programmer for Java 2 Platform 1.2
                                Sun Certified Web Component Developer for J2EE Platform 1.3
                                Sun Certified Web Component Developer for J2EE Platform 1.4
                                Sun Certified Business Component Developer for J2EE Platform 1.3
                                Sun Certified Enterprise Architect for J2EE Platform - Part I
                                Sun Certified Programmer for Java 2 Platform 5.0
                                Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                Sun Certified Associate for the Java 2 Platform 1.0

                                E-mail/MSN/Google Talk: juarez.barbosa@...
                                MGJUG: juarez.barbosa@...
                                GSM Mobile: +5531 9208 5948

                                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                                Rio Java Users Group: http://www.riojug.org
                                Moderadores: riojug-owner@yahoogroups.com
                                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                                Outras listas do RioJUG:
                                SCJP (groups.yahoo.com/group/scjp_riojug)
                                SCWCD (groups.yahoo.com/group/scwcd_riojug)
                                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                                SPONSORED LINKS
                                Cool Websites

                                Know a good site?

                                Share and vote

                                on Bix.com!

                                Y! Toolbar

                                Get it Free!

                                easy 1-click access

                                to your groups.

                                Yahoo! Groups

                                Start a group

                                in 3 easy steps.

                                Connect with others.

                              • Peter
                                Oi Juarez! A versão 4.0.4 do JBoss já suporta EJB3.0 com DI para EntityManagers, Sessions... dá pra usar @PersistenceContext e @EJB (respondendo sua
                                Message 15 of 17 , Mar 15, 2007
                                  Oi Juarez!

                                  A versão 4.0.4 do JBoss já suporta EJB3.0 com DI para EntityManagers, Sessions... dá pra usar @PersistenceContext e @EJB (respondendo sua pergunta). Não sei se versões anteriores suportam. Não me lembro.
                                  A versão 4.0.5 está um pouco melhor (claro)...
                                  A versão 5 está em alpha, se não me engando... e tb suporta...

                                  A versão que estou usando é esta mesmo... EJB3 Embeddable Alpha8 patch 2... hehehe... tô usando o container embeddable.

                                  Abraço.
                                  Peter P. Lupo
                                  Undergraduating in Computer Science DCC/UFRJ
                                  Sun Certified Java Associate
                                  http://pplupo.googlepages.com/
                                  Cell. +55 (021) 81742487


                                  Juarez Junior wrote:

                                  Peter,

                                  "versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)"
                                  Eu nao consegui entender sobre sua versao do JBoss, ate onde sei o JBoss usa um esquema de versionamento tipo 3.2.8 ou 4.0.5. Nao vi nada parecido...

                                  Hum...eu estou precisando muito para um modulo que vamos colocar no ar com EJB 3.0, eu mesmo vou fazer o teste aqui. Numa versao anterior do JBoss nao suportava @EJB para refs EJB, entao usamos um Service Locator. Mas agora eu quero injetar tudo, entao surgiu a duvida.

                                  Preciso saber qual versao do JBoss suporta a annotation @EJB para referencias EJB 3.0 e nao somente para o EntityManager. Agradeco apoio da galera do JUG ;)

                                  Peter, de qualquer forma agradeco...qualquer coisa estamos ai na lista tambem.

                                  Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                  Sun Certified Programmer for Java 2 Platform 1.2
                                  Sun Certified Web Component Developer for J2EE Platform 1.3
                                  Sun Certified Web Component Developer for J2EE Platform 1.4
                                  Sun Certified Business Component Developer for J2EE Platform 1.3
                                  Sun Certified Enterprise Architect for J2EE Platform - Part I
                                  Sun Certified Programmer for Java 2 Platform 5.0
                                  Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                  Sun Certified Associate for the Java 2 Platform 1.0

                                  E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                                  MGJUG: juarez.barbosa@ mgjug.com. br
                                  GSM Mobile: +5531 9208 5948



                                  On 3/13/07, Peter <peterplupo@gmail. com> wrote:

                                  Estou usando a versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)

                                  Abraço!

                                  Peter P. Lupo
                                  Undergraduating in Computer Science DCC/UFRJ
                                  Sun Certified Java Associate
                                  
                                  http://pplupo. googlepages. com/
                                  Cell. +55 (021) 81742487


                                  Juarez Junior wrote:

                                  Opa, bacana. Peter, me da uma dica entao, qual versao de JBoss serie 4.0.x voce esta usando? 4.0.5???

                                  []'s

                                  Juarez Jr


                                  On 3/12/07, Peter <peterplupo@gmail. com> wrote:

                                  Oi Juarez! Obrigado pela dica.

                                  Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext .

                                  Abraço.

                                  Peter P. Lupo
                                  Undergraduating in Computer Science DCC/UFRJ
                                  Sun Certified Java Associate
                                  
                                  
                                  http://pplupo. googlepages. com/
                                  Cell. +55 (021) 81742487


                                  Juarez Junior wrote:

                                  Peter,

                                  Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                                  []'s

                                  Juarez Junior



                                  On 3/11/07, Peter <peterplupo@gmail. com > wrote:

                                  Amigos,

                                  Estou com uma dúvida séria... :¬)
                                  Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                                  Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                                  Estou tendo um NullPointerExceptio n na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                                  O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                                  Em SessionBeans está funcionando. Nos Entities não está.

                                  Segue o código do Entity e em seguida o StackTrace:

                                  @Entity
                                  @PrimaryKeyJoinColu mn(name="ID")
                                  public class AmbienteInstanciado extends Ambiente {

                                      @EJB(name="DAORelacionamentoBe an/local")
                                      DAORelacionamento<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosDAO;

                                      private Set<AmbienteInstanciado Usuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciado Usuarios>();

                                      @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                                      private Set<AmbienteInstanciado Usuarios> getMapeamentoUsuari os() {
                                          return this.mapeamentoUsua rios;
                                      }

                                      private void setMapeamentoUsuari os(Set<AmbienteInstanciado Usuarios> ambienteInstanciado Usuarios) {
                                          this.mapeamentoUsua rios = ambienteInstanciado Usuarios;
                                      }

                                      public void setUsuarios( List<Usuario> usuarios) {
                                          List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                                          List<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosRemove = new LinkedList<AmbienteInstanciado Usuarios>();
                                  //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                                          TreeSet<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosNew = new TreeSet<AmbienteInstanciado Usuarios>();
                                          for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : getMapeamentoUsuari os()){
                                              Usuario usuario = ambienteInstanciado Usuarios. getUsuario( );
                                              Integer position = usuarios.indexOf( usuario);
                                              if (position != -1) {
                                                  ambienteInstanciado Usuarios. setSequencia( new Integer(position. toString( )));
                                                  ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                              } else {
                                  //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                                  ambienteInstanciado UsuariosRemove. add(ambienteInst anciadoUsuarios) ;
                                              }
                                  //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                                              usuariosAdd. remove(usuario) ;
                                          }
                                  //        Removendo usuarios
                                          for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : ambienteInstanciado UsuariosRemove) {
                                              getAmbienteInstanci adoUsuariosDAO( ).remove( ambienteInstanci adoUsuarios) ; Aqui poderia ter dado erro se tivesse entrado neste for!!!
                                          }
                                  //        Adicionando usuarios
                                          for (Usuario usuario : usuariosAdd) {
                                              Integer position = usuarios.indexOf( usuario);
                                              AmbienteInstanciado Usuarios ambienteInstanciado Usuarios = new AmbienteInstanciado Usuarios( usuario, this, new Integer(position. toString( )));
                                              getAmbienteInstanci adoUsuariosDAO( ).persist( ambienteInstanci adoUsuarios) ; Aqui deu NullPointerExceptio n. Com um System.out.println(
                                  getAmbienteInstanci adoUsuariosDAO( )), tive a confirmação de que este era "null".
                                              ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                          }
                                          this.mapeamentoUsua rios = ambienteInstanciado UsuariosNew;
                                      }

                                      @Transient
                                      private DAORelacionamento<AmbienteInstanciado Usuarios> getAmbienteInstanci adoUsuariosDAO( ) {
                                          return ambienteInstanciado UsuariosDAO;
                                      }

                                  }

                                  Agora, o StackTrace. Reparem as linhas em negrito:

                                  javax.ejb.EJBExcept ion: java.lang.NullPoint erException
                                      at org.jboss.ejb3. tx.Ejb3TxPolicy. handleExceptionI nOurTx(Ejb3TxPol icy.java: 69)
                                      at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:83)
                                      at org.jboss.aspects. tx.TxInterceptor $Required. invoke(TxInterce ptor.java: 197)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.aspects. tx.TxPropagation Interceptor. invoke(TxPropaga tionInterceptor. java:76)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.ejb3. stateless. StatelessInstanc eInterceptor. invoke(Stateless InstanceIntercep tor.java: 62)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.aspects. security. AuthenticationIn terceptor. invoke(Authentic ationInterceptor .java:77)
                                      at org.jboss.ejb3. security. Ejb3Authenticati onInterceptor. invoke(Ejb3Authe nticationInterce ptor.java: 102)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.ejb3. ENCPropagationIn terceptor. invoke(ENCPropag ationInterceptor .java:47)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.ejb3. asynchronous. AsynchronousInte rceptor.invoke( AsynchronousInte rceptor.java: 106)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.ejb3. stateless. StatelessContain er.localInvoke( StatelessContain er.java:211)
                                      at org.jboss.ejb3. stateless. StatelessLocalPr oxy.invoke( StatelessLocalPr oxy.java: 79)
                                      at $Proxy32.teste( Unknown Source)
                                      at br.ufrj.cos. lens.taba. testes.TesteTaba .testTeste( TesteTaba. java:34)
                                      at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                                      at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                                      at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                                      at java.lang.reflect. Method.invoke( Unknown Source)
                                      at org.junit.internal. runners.TestMeth odRunner. executeMethodBod y(TestMethodRunn er.java:99)
                                      at org.junit.internal. runners.TestMeth odRunner. runUnprotected( TestMethodRunner .java:81)
                                      at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                                      at org.junit.internal. runners.TestMeth odRunner. runMethod( TestMethodRunner .java:75)
                                      at org.junit.internal. runners.TestMeth odRunner. run(TestMethodRu nner.java: 45)
                                      at org.junit.internal. runners.TestClas sMethodsRunner. invokeTestMethod (TestClassMethod sRunner.java: 71)
                                      at org.junit.internal. runners.TestClas sMethodsRunner. run(TestClassMet hodsRunner. java:35)
                                      at org.junit.internal. runners.TestClas sRunner$1. runUnprotected( TestClassRunner. java:42)
                                      at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                                      at org.junit.internal. runners.TestClas sRunner.run( TestClassRunner. java:52)
                                      at org.eclipse. jdt.internal. junit4.runner. JUnit4TestRefere nce.run(JUnit4Te stReference. java:38)
                                      at org.eclipse. jdt.internal. junit.runner. TestExecution. run(TestExecutio n.java:38)
                                      at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:460)
                                      at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:673)
                                      at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .run(RemoteTestR unner.java: 386)
                                      at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .main(RemoteTest Runner.java: 196)
                                  Caused by: java.lang.NullPoint erException
                                      at br.ufrj.cos. lens.taba. model.tables. AmbienteInstanci ado.setUsuarios( AmbienteInstanci ado.java: 253)

                                      at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.insertUsua rioAmbienteInsta nciado(Mapeament oCT01.java: 57)
                                      at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestinoV azia(MapeamentoC T01.java: 84)
                                      at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestino( MapeamentoCT01. java:120)
                                      at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.teste( MapeamentoCT01. java:34)
                                      at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                                      at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                                      at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                                      at java.lang.reflect. Method.invoke( Unknown Source)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeTarget( MethodInvocation .java:121)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:110)
                                      at org.jboss.ejb3. interceptor. InvocationContex tImpl.proceed( InvocationContex tImpl.java: 166)
                                      at org.jboss.ejb3. interceptor. EJB3Interceptors Interceptor. invoke(EJB3Inter ceptorsIntercept or.java:63)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.ejb3. entity.Transacti onScopedEntityMa nagerInterceptor .invoke(Transact ionScopedEntityM anagerIntercepto r.java:54)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.ejb3. AllowedOperation sInterceptor. invoke(AllowedOp erationsIntercep tor.java: 47)
                                      at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                      at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:79)
                                      ... 37 more

                                  Agradeço muitíssimo aos que puderem me ajudar.
                                  Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                                  Abraço a todos e obrigado pelo seu tempo.

                                  -- 
                                  Peter P. Lupo
                                  Undergraduating in Computer Science DCC/UFRJ
                                  Sun Certified Java Associate
                                  
                                  
                                  
                                  http://pplupo. googlepages. com/
                                  Cell. +55 (021) 81742487



                                  --
                                  Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                  Sun Certified Programmer for Java 2 Platform 1.2
                                  Sun Certified Web Component Developer for J2EE Platform 1.3
                                  Sun Certified Web Component Developer for J2EE Platform 1.4
                                  Sun Certified Business Component Developer for J2EE Platform 1.3
                                  Sun Certified Enterprise Architect for J2EE Platform - Part I
                                  Sun Certified Programmer for Java 2 Platform 5.0
                                  Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                  Sun Certified Associate for the Java 2 Platform 1.0

                                  E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                                  MGJUG: juarez.barbosa@ mgjug.com. br
                                  GSM Mobile: +5531 9208 5948



                                  --
                                  Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                  Sun Certified Programmer for Java 2 Platform 1.2
                                  Sun Certified Web Component Developer for J2EE Platform 1.3
                                  Sun Certified Web Component Developer for J2EE Platform 1.4
                                  Sun Certified Business Component Developer for J2EE Platform 1.3
                                  Sun Certified Enterprise Architect for J2EE Platform - Part I
                                  Sun Certified Programmer for Java 2 Platform 5.0
                                  Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                  Sun Certified Associate for the Java 2 Platform 1.0

                                  E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                                  MGJUG: juarez.barbosa@ mgjug.com. br
                                  GSM Mobile: +5531 9208 5948
                                  -=-=-=-=-=-= -=-=-=-=- =-=-=-=-= -=-=-=-=- =-=-
                                  Rio Java Users Group: http://www.riojug. org
                                  Moderadores: riojug-owner@ yahoogroups. com
                                  -=-=-=-=-=-= -=-=-=-=- =-=-=-=-= -=-=-=-=- =-=-
                                  Outras listas do RioJUG:
                                  SCJP (groups.yahoo. com/group/ scjp_riojug)
                                  SCWCD (groups.yahoo. com/group/ scwcd_riojug)
                                  -=-=-=-=-=-= -=-=-=-=- =-=-=-=-= -=-=-=-=- =-=-
                                  SPONSORED LINKS
                                  Cool Websites

                                  Know a good site?

                                  Share and vote

                                  on Bix.com!

                                  Y! Toolbar

                                  Get it Free!

                                  easy 1-click access

                                  to your groups.

                                  Yahoo! Groups

                                  Start a group

                                  in 3 easy steps.

                                  Connect with others.

                                • Peter
                                  Juarez, é desse que estou falando: http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=132063&release_id=421939 Peter P. Lupo
                                  Message 16 of 17 , Mar 16, 2007
                                    Juarez, é desse que estou falando:

                                    http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=132063&release_id=421939
                                    Peter P. Lupo
                                    Undergraduating in Computer Science DCC/UFRJ
                                    Sun Certified Java Associate
                                    http://pplupo.googlepages.com/
                                    Cell. +55 (021) 81742487


                                    Juarez Junior wrote:

                                    Peter,

                                    "versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)"
                                    Eu nao consegui entender sobre sua versao do JBoss, ate onde sei o JBoss usa um esquema de versionamento tipo 3.2.8 ou 4.0.5. Nao vi nada parecido...

                                    Hum...eu estou precisando muito para um modulo que vamos colocar no ar com EJB 3.0, eu mesmo vou fazer o teste aqui. Numa versao anterior do JBoss nao suportava @EJB para refs EJB, entao usamos um Service Locator. Mas agora eu quero injetar tudo, entao surgiu a duvida.

                                    Preciso saber qual versao do JBoss suporta a annotation @EJB para referencias EJB 3.0 e nao somente para o EntityManager. Agradeco apoio da galera do JUG ;)

                                    Peter, de qualquer forma agradeco...qualquer coisa estamos ai na lista tambem.

                                    Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                    Sun Certified Programmer for Java 2 Platform 1.2
                                    Sun Certified Web Component Developer for J2EE Platform 1.3
                                    Sun Certified Web Component Developer for J2EE Platform 1.4
                                    Sun Certified Business Component Developer for J2EE Platform 1.3
                                    Sun Certified Enterprise Architect for J2EE Platform - Part I
                                    Sun Certified Programmer for Java 2 Platform 5.0
                                    Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                    Sun Certified Associate for the Java 2 Platform 1.0

                                    E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                                    MGJUG: juarez.barbosa@ mgjug.com. br
                                    GSM Mobile: +5531 9208 5948



                                    On 3/13/07, Peter <peterplupo@gmail. com> wrote:

                                    Estou usando a versão jboss EJB-3.0 Embeddable ALPHA 8 patch2. ;¬)

                                    Abraço!

                                    Peter P. Lupo
                                    Undergraduating in Computer Science DCC/UFRJ
                                    Sun Certified Java Associate
                                    
                                    http://pplupo. googlepages. com/
                                    Cell. +55 (021) 81742487


                                    Juarez Junior wrote:

                                    Opa, bacana. Peter, me da uma dica entao, qual versao de JBoss serie 4.0.x voce esta usando? 4.0.5???

                                    []'s

                                    Juarez Jr


                                    On 3/12/07, Peter <peterplupo@gmail. com> wrote:

                                    Oi Juarez! Obrigado pela dica.

                                    Sim, estou usando JBoss. Mas o estranho é que @EJB está funcionando normalmente nos Sessions, assim como @PersistenceContext .

                                    Abraço.

                                    Peter P. Lupo
                                    Undergraduating in Computer Science DCC/UFRJ
                                    Sun Certified Java Associate
                                    
                                    
                                    http://pplupo. googlepages. com/
                                    Cell. +55 (021) 81742487


                                    Juarez Junior wrote:

                                    Peter,

                                    Qual container voce esta usando? JBoss? Eu sei que algumas versoes da serie 4.0.x do JBoss ainda nao estava suportando @EJB, voce tem que usar um service locator mesmo...

                                    []'s

                                    Juarez Junior



                                    On 3/11/07, Peter <peterplupo@gmail. com > wrote:

                                    Amigos,

                                    Estou com uma dúvida séria... :¬)
                                    Até onde eu sei, o Dependency Injection do EJB3.0 deveria funcionar normalmente num Entity, certo?

                                    Gostaria que vocês vissem este pedaço de código e este stacktrace e me ajudassem a identificar o problema.
                                    Estou tendo um NullPointerExceptio n na linha marcada. Aparentemente o JDNI falhou ao encontrar o DAO (um SessionBean @Stateless) ou simplesmente nem foi procurá-lo, ou seja, o DI é que não funcionou.
                                    O mesmo erro acontece se eu tentar pegar uma referência para "@PersistenceContext EntityManager em".
                                    Em SessionBeans está funcionando. Nos Entities não está.

                                    Segue o código do Entity e em seguida o StackTrace:

                                    @Entity
                                    @PrimaryKeyJoinColu mn(name="ID")
                                    public class AmbienteInstanciado extends Ambiente {

                                        @EJB(name="DAORelacionamentoBe an/local")
                                        DAORelacionamento<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosDAO;

                                        private Set<AmbienteInstanciado Usuarios> mapeamentoUsuarios = new TreeSet<AmbienteInstanciado Usuarios>();

                                        @OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "ambienteInstanciado")
                                        private Set<AmbienteInstanciado Usuarios> getMapeamentoUsuari os() {
                                            return this.mapeamentoUsua rios;
                                        }

                                        private void setMapeamentoUsuari os(Set<AmbienteInstanciado Usuarios> ambienteInstanciado Usuarios) {
                                            this.mapeamentoUsua rios = ambienteInstanciado Usuarios;
                                        }

                                        public void setUsuarios( List<Usuario> usuarios) {
                                            List<Usuario> usuariosAdd = new LinkedList<Usuario>(usuarios);
                                            List<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosRemove = new LinkedList<AmbienteInstanciado Usuarios>();
                                    //        Os usuarios serao colocados em uma nova colecao, para que esta os ordene
                                            TreeSet<AmbienteInstanciado Usuarios> ambienteInstanciado UsuariosNew = new TreeSet<AmbienteInstanciado Usuarios>();
                                            for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : getMapeamentoUsuari os()){
                                                Usuario usuario = ambienteInstanciado Usuarios. getUsuario( );
                                                Integer position = usuarios.indexOf( usuario);
                                                if (position != -1) {
                                                    ambienteInstanciado Usuarios. setSequencia( new Integer(position. toString( )));
                                                    ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                                } else {
                                    //                Usuarios que serao removidos pois nao foram encontrados na colecao nova
                                                    ambienteInstanciado UsuariosRemove. add(ambienteInst anciadoUsuarios) ;
                                                }
                                    //            Tirando da colecao nova os usuarios presentes, sobram os que devem ser adicionados
                                                usuariosAdd. remove(usuario) ;
                                            }
                                    //        Removendo usuarios
                                            for (AmbienteInstanciad oUsuarios ambienteInstanciado Usuarios : ambienteInstanciado UsuariosRemove) {
                                                getAmbienteInstanci adoUsuariosDAO( ).remove( ambienteInstanci adoUsuarios) ; Aqui poderia ter dado erro se tivesse entrado neste for!!!
                                            }
                                    //        Adicionando usuarios
                                            for (Usuario usuario : usuariosAdd) {
                                                Integer position = usuarios.indexOf( usuario);
                                                AmbienteInstanciado Usuarios ambienteInstanciado Usuarios = new AmbienteInstanciado Usuarios( usuario, this, new Integer(position. toString( )));
                                                getAmbienteInstanci adoUsuariosDAO( ).persist( ambienteInstanci adoUsuarios) ; Aqui deu NullPointerExceptio n. Com um System.out.println(
                                    getAmbienteInstanci adoUsuariosDAO( )), tive a confirmação de que este era "null".
                                                ambienteInstanciado UsuariosNew. add(ambienteInst anciadoUsuarios) ;
                                            }
                                            this.mapeamentoUsua rios = ambienteInstanciado UsuariosNew;
                                        }

                                        @Transient
                                        private DAORelacionamento<AmbienteInstanciado Usuarios> getAmbienteInstanci adoUsuariosDAO( ) {
                                            return ambienteInstanciado UsuariosDAO;
                                        }

                                    }

                                    Agora, o StackTrace. Reparem as linhas em negrito:

                                    javax.ejb.EJBExcept ion: java.lang.NullPoint erException
                                        at org.jboss.ejb3. tx.Ejb3TxPolicy. handleExceptionI nOurTx(Ejb3TxPol icy.java: 69)
                                        at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:83)
                                        at org.jboss.aspects. tx.TxInterceptor $Required. invoke(TxInterce ptor.java: 197)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.aspects. tx.TxPropagation Interceptor. invoke(TxPropaga tionInterceptor. java:76)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.ejb3. stateless. StatelessInstanc eInterceptor. invoke(Stateless InstanceIntercep tor.java: 62)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.aspects. security. AuthenticationIn terceptor. invoke(Authentic ationInterceptor .java:77)
                                        at org.jboss.ejb3. security. Ejb3Authenticati onInterceptor. invoke(Ejb3Authe nticationInterce ptor.java: 102)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.ejb3. ENCPropagationIn terceptor. invoke(ENCPropag ationInterceptor .java:47)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.ejb3. asynchronous. AsynchronousInte rceptor.invoke( AsynchronousInte rceptor.java: 106)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.ejb3. stateless. StatelessContain er.localInvoke( StatelessContain er.java:211)
                                        at org.jboss.ejb3. stateless. StatelessLocalPr oxy.invoke( StatelessLocalPr oxy.java: 79)
                                        at $Proxy32.teste( Unknown Source)
                                        at br.ufrj.cos. lens.taba. testes.TesteTaba .testTeste( TesteTaba. java:34)
                                        at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                                        at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                                        at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                                        at java.lang.reflect. Method.invoke( Unknown Source)
                                        at org.junit.internal. runners.TestMeth odRunner. executeMethodBod y(TestMethodRunn er.java:99)
                                        at org.junit.internal. runners.TestMeth odRunner. runUnprotected( TestMethodRunner .java:81)
                                        at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                                        at org.junit.internal. runners.TestMeth odRunner. runMethod( TestMethodRunner .java:75)
                                        at org.junit.internal. runners.TestMeth odRunner. run(TestMethodRu nner.java: 45)
                                        at org.junit.internal. runners.TestClas sMethodsRunner. invokeTestMethod (TestClassMethod sRunner.java: 71)
                                        at org.junit.internal. runners.TestClas sMethodsRunner. run(TestClassMet hodsRunner. java:35)
                                        at org.junit.internal. runners.TestClas sRunner$1. runUnprotected( TestClassRunner. java:42)
                                        at org.junit.internal. runners.BeforeAn dAfterRunner. runProtected( BeforeAndAfterRu nner.java: 34)
                                        at org.junit.internal. runners.TestClas sRunner.run( TestClassRunner. java:52)
                                        at org.eclipse. jdt.internal. junit4.runner. JUnit4TestRefere nce.run(JUnit4Te stReference. java:38)
                                        at org.eclipse. jdt.internal. junit.runner. TestExecution. run(TestExecutio n.java:38)
                                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:460)
                                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .runTests( RemoteTestRunner .java:673)
                                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .run(RemoteTestR unner.java: 386)
                                        at org.eclipse. jdt.internal. junit.runner. RemoteTestRunner .main(RemoteTest Runner.java: 196)
                                    Caused by: java.lang.NullPoint erException
                                        at br.ufrj.cos. lens.taba. model.tables. AmbienteInstanci ado.setUsuarios( AmbienteInstanci ado.java: 253)

                                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.insertUsua rioAmbienteInsta nciado(Mapeament oCT01.java: 57)
                                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestinoV azia(MapeamentoC T01.java: 84)
                                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.inserirObj etoListaDestino( MapeamentoCT01. java:120)
                                        at br.ufrj.cos. lens.taba. testes.Mapeament oCT01.teste( MapeamentoCT01. java:34)
                                        at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method)
                                        at sun.reflect. NativeMethodAcce ssorImpl. invoke(Unknown Source)
                                        at sun.reflect. DelegatingMethod AccessorImpl. invoke(Unknown Source)
                                        at java.lang.reflect. Method.invoke( Unknown Source)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeTarget( MethodInvocation .java:121)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:110)
                                        at org.jboss.ejb3. interceptor. InvocationContex tImpl.proceed( InvocationContex tImpl.java: 166)
                                        at org.jboss.ejb3. interceptor. EJB3Interceptors Interceptor. invoke(EJB3Inter ceptorsIntercept or.java:63)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.ejb3. entity.Transacti onScopedEntityMa nagerInterceptor .invoke(Transact ionScopedEntityM anagerIntercepto r.java:54)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.ejb3. AllowedOperation sInterceptor. invoke(AllowedOp erationsIntercep tor.java: 47)
                                        at org.jboss.aop. joinpoint. MethodInvocation .invokeNext( MethodInvocation .java:101)
                                        at org.jboss.aspects. tx.TxPolicy. invokeInOurTx( TxPolicy. java:79)
                                        ... 37 more

                                    Agradeço muitíssimo aos que puderem me ajudar.
                                    Não consegui identificar a origem deste erro. Já li e re-li várias documentações a respeito de Entities e Dependency Injection. A princípio, DI deveria funcionar em todos os componentes que sejam gerenciados pelo container EJB e até onde entendo, @Entity se enquadra nessa categoria.

                                    Abraço a todos e obrigado pelo seu tempo.

                                    -- 
                                    Peter P. Lupo
                                    Undergraduating in Computer Science DCC/UFRJ
                                    Sun Certified Java Associate
                                    
                                    
                                    
                                    http://pplupo. googlepages. com/
                                    Cell. +55 (021) 81742487



                                    --
                                    Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                    Sun Certified Programmer for Java 2 Platform 1.2
                                    Sun Certified Web Component Developer for J2EE Platform 1.3
                                    Sun Certified Web Component Developer for J2EE Platform 1.4
                                    Sun Certified Business Component Developer for J2EE Platform 1.3
                                    Sun Certified Enterprise Architect for J2EE Platform - Part I
                                    Sun Certified Programmer for Java 2 Platform 5.0
                                    Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                    Sun Certified Associate for the Java 2 Platform 1.0

                                    E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                                    MGJUG: juarez.barbosa@ mgjug.com. br
                                    GSM Mobile: +5531 9208 5948



                                    --
                                    Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

                                    Sun Certified Programmer for Java 2 Platform 1.2
                                    Sun Certified Web Component Developer for J2EE Platform 1.3
                                    Sun Certified Web Component Developer for J2EE Platform 1.4
                                    Sun Certified Business Component Developer for J2EE Platform 1.3
                                    Sun Certified Enterprise Architect for J2EE Platform - Part I
                                    Sun Certified Programmer for Java 2 Platform 5.0
                                    Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
                                    Sun Certified Associate for the Java 2 Platform 1.0

                                    E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
                                    MGJUG: juarez.barbosa@ mgjug.com. br
                                    GSM Mobile: +5531 9208 5948
                                    -=-=-=-=-=-= -=-=-=-=- =-=-=-=-= -=-=-=-=- =-=-
                                    Rio Java Users Group: http://www.riojug. org
                                    Moderadores: riojug-owner@ yahoogroups. com
                                    -=-=-=-=-=-= -=-=-=-=- =-=-=-=-= -=-=-=-=- =-=-
                                    Outras listas do RioJUG:
                                    SCJP (groups.yahoo. com/group/ scjp_riojug)
                                    SCWCD (groups.yahoo. com/group/ scwcd_riojug)
                                    -=-=-=-=-=-= -=-=-=-=- =-=-=-=-= -=-=-=-=- =-=-
                                    SPONSORED LINKS
                                    Cool Websites

                                    Know a good site?

                                    Share and vote

                                    on Bix.com!

                                    Y! Toolbar

                                    Get it Free!

                                    easy 1-click access

                                    to your groups.

                                    Yahoo! Groups

                                    Start a group

                                    in 3 easy steps.

                                    Connect with others.

                                  Your message has been successfully submitted and would be delivered to recipients shortly.