[Resolvido] Testar Primeiro EJB , Null Pointer Exception  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

Opa galera beleza? Estou tendo dificuldades em testar os meus Ejbs...

Tenho um projeto EJB com a sequinte estrutura:


Interface Remota


Bean:



Tenho um projeto Web com um Servlet:



Antes eu subia somente o projeto EJB no Jboss 5.1 e ele não me gerava um JNDI
Agora eu estou usando o Jboss 4.2.2 e aparentemente ele me gera um JNDI pois há um refêrencia do meu bean no GLOBAL JNDI NAMING

No Projeto Web na pasta lib tenho um JAR do meu Projeto EJB(deploy fora do eclipse) e para o eclipse reconhecer o EJB eu adicionei no class path do projeto web o projeto ejb.

Quando eu executo esse código eu recebo uma NullPointerException.


Abaixo o Log do servidor:



Preciso muito de ajuda estou com essa duvida já a bastante tempo e não vejo solução.

Abraço galera e obrigado.

This message was edited 1 time. Last update was at 21/02/2010 18:44:26


Gabriel Cardelli
http://www.opengti.com.br
[Email]
breno500as
Virtual Machine Man
[Avatar]
Membro desde: 11/10/2007 17:53:07
Mensagens: 614
Localização: Belo Horizonte - MG
Offline

Poste seu web.xml

Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
Sun Certified Business Component Developer 5.0
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

breno, não fiz nenhuma alteração no web.xml
segue ele,


abraço.

EDIT:

O Erro esqueci de postar:

This message was edited 1 time. Last update was at 21/02/2010 16:01:34


Gabriel Cardelli
http://www.opengti.com.br
[Email]
breno500as
Virtual Machine Man
[Avatar]
Membro desde: 11/10/2007 17:53:07
Mensagens: 614
Localização: Belo Horizonte - MG
Offline

Então Gabriel, para utilizar o @EJB dentro de um servlet vc precisa colocar umas declarações a mais no web.xml para o container injetar o ejb para vc...
Nunca fiz dessa forma(não gosto muito de configurar xml) pois prefiro utilizar o lookup....
As tags são as seguintes:



Vai testando ai cara...
Abraços..

Abraço..

Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
Sun Certified Business Component Developer 5.0
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

A série 4.x do JBoss não é inteiramente compatível com a especificação JavaEE 5, embora suporte o uso de EJB3. Uma das incompatibilidades é injeção via @EJB fora do container EJB, como em uma servlet, isso de fato não funciona.

A versão 5.x é 100% certificada JavaEE5 portanto injeção de EJBs em Servlets funcionam sem problemas.

Portanto pra fazer o que vc quer, utilize as versões da série 5 do JBoss, e não a versão 4.

... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

breno vou testar aqui mano! Obrigado!!

Alessandro no Jboss 5.1 não sobe meu EJB
no Jboss 6.0 eu não consigo configurar ele no eclipse. =/

Vou fazer uns testes aqui. Abraço se alguem puder dar mais alguma ajuda agradeço.

Abraço galera obrigado.

Gabriel Cardelli
http://www.opengti.com.br
[Email]
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

Aonde é que eu vejo o JNDI?

Não estou achando qual o nome que está nele:

No Log:



No Global JNDI Namespace:



O JNDI é o nome do meu Bean? (linha 15)

This message was edited 1 time. Last update was at 21/02/2010 16:49:05


Gabriel Cardelli
http://www.opengti.com.br
[Email]
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

É a linha 15 + 16:



... ou seja, seu ejb esta em "HelloUserBean/remote"

Utilize o JBoss na versão 5.1.

... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

Ae funcionou usando o LOOKUP ao invés do @EJB e colocando o JNDI no lookup.

Aeeeeeeeee =D

Muito obrigado pessoal!!

breno e lazarotti

Abraço!!

Gabriel Cardelli
http://www.opengti.com.br
[Email]
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

Se alguem tiver o mesmo erro , ai o código

Gabriel Cardelli
http://www.opengti.com.br
[Email]
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

Legal que funcionou Gabriel, mas vá com calma.
Se vc utiliza a tecnologia JavaEE 5 o interessante é tirar proveito de seus recursos, como Dependency Injection. Embora lookup funcione, o mais indicado hoje, seja por produtividade, clareza no código e testabilidade, é usar DI.

Não desista, reveja seu código e vá atrás do erro. Se você esta tentando aprender a tecnologia, não utilize atalhos.

... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
Alessandro Lazarotti
Virtual Machine Man
[Avatar]

Membro desde: 21/01/2004 14:12:54
Mensagens: 719
Offline

PS:Se vc quer utilizar o EJB como local, como você fez no lookup, anote a interface do EJB como local, não como remote (embora o JBoss otimize interfaces remotas que são invocadas localmente, as tratando como local).

... Lezinho
------------------------
twitter: @lazarotti
http://alessandrolazarotti.wordpress.com/
http://jbossbrasil.org/

[Email] [MSN]
GabrielCardelli
GUJ Ranger
[Avatar]

Membro desde: 25/10/2008 13:07:31
Mensagens: 823
Localização: Rio de Janeiro
Offline

Alessandro estou agora seguindo a aplicação do livro e utilizando DI só não pude testar ainda, no meu exemplo não funcionou realmente, vou ver agora no exemplo da aplicação do livro e ver se funciona.


PS: No livro o que dá a entender é que o servlet e o ejb sobe no mesmo projeto.

EDIT...

O que eu fiquei mesmo sem entender foi o porque de não funcionar com @EJB se ele faz o mesmo trabalho ao meu ver
vou testar passando um atributo nome para o @Stateless e ver se ele encontra.

Amanha eu testo e posto.

Obrigado pela atenção mano!
Abraço

This message was edited 1 time. Last update was at 22/02/2010 01:26:54


Gabriel Cardelli
http://www.opengti.com.br
[Email]
alexandrenilton
Thread.start()

Membro desde: 04/03/2008 13:03:03
Mensagens: 26
Offline

GabrielCardelli wrote:Se alguem tiver o mesmo erro , ai o código




Valeu amigo!! por esse seu post ai, conseguir aprender como funciona o EJB 3, de inicio..
Agora, tenho um livro EJB3 in Action pela frente para ler =]

Valeu mesmo

 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team