| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 09:21:12
|
breno500as
Virtual Machine Man
Membro desde: 11/10/2007 17:53:07
Mensagens: 614
Localização: Belo Horizonte - MG
Offline
|
maior_abandonado wrote:...estou estudando EJB por conta, com uns materiais que peguei na net...
maior_abandonado wrote:... alguma dica?...
Primeiramente, recomendo que você leia algum material bacana antes de sair programando...Este livro que está na sua assinatura é um bom exemplo... Você está misturando um pouco alguns conceitos: Injeção de dependência com lookup em EJBContext, O que se pode utilizar dentro de um componente WEB com o que se pode utilizar em um componente de negócio.... Mas tranquilo, vou tentar te ajudar...
maior_abandonado wrote:eu procurei marcar a classe com um @Stateless...
Ok, mantenha como Stateless... Como já tinha te falado, isto sempre virá null em um componente WEB, se vier nulo em um componente de negócio provavelmente deve ter ocorrido algum erro na subida da sua aplicação.... Este tipo de interface(SessionContext ou EJBContext) não é utilizada em componentes de negócio para recuperar outros EJBs(utiliza-se apenas @EJB, mas nada te impede de utilizar SessionContext), geralmente ela é utilizada para outros tipos de serviço(Temporização,Segurança programática,Serviços de gerencia de Transação,etc...)
maior_abandonado wrote:eu não quero trabalhar com InnitialContext, preencher o properties na mão, com informações que dependem de container para container...
Existem várias formas de se fazer....Já que não quer trabalhar com InitialContext você pode colocar declarações no web.xml para o container injetar a dependência para você... Tente colocar isto no seu web.xml e verifique se a variável carrinho continua nula: Teste desta forma, se não funcionar poste o erro para que possamos te ajudar... Existem outras alternativas que não precisam de lookup, nem de declarações no web.xml....Uma delas seria o Jboss Seam(só que no caso seu controller é o JSF, não sei se é do seu agrado....) Boa sorte...
This message was edited 1 time. Last update was at 12/04/2010 10:15:25
|
Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
Sun Certified Business Component Developer 5.0 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 10:13:42
|
breno500as
Virtual Machine Man
Membro desde: 11/10/2007 17:53:07
Mensagens: 614
Localização: Belo Horizonte - MG
Offline
|
duplicou...aff...
This message was edited 1 time. Last update was at 12/04/2010 10:14:09
|
Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
Sun Certified Business Component Developer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 14:45:36
|
maior_abandonado
JWizard
![[Avatar]](/images/avatar/0d7c463832b871c20405a6c9296b5517.jpg)
Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline
|
breno500as wrote:
maior_abandonado wrote:...estou estudando EJB por conta, com uns materiais que peguei na net...
maior_abandonado wrote:... alguma dica?...
Primeiramente, recomendo que você leia algum material bacana antes de sair programando...Este livro que está na sua assinatura é um bom exemplo...
Você está misturando um pouco alguns conceitos: Injeção de dependência com lookup em EJBContext, O que se pode utilizar dentro de um componente WEB com o que se pode utilizar em um componente de negócio.... Mas tranquilo, vou tentar te ajudar...
maior_abandonado wrote:eu procurei marcar a classe com um @Stateless...
Ok, mantenha como Stateless...
Como já tinha te falado, isto sempre virá null em um componente WEB, se vier nulo em um componente de negócio provavelmente deve ter ocorrido algum erro na subida da sua aplicação....
Este tipo de interface(SessionContext ou EJBContext) não é utilizada em componentes de negócio para recuperar outros EJBs(utiliza-se apenas @EJB, mas nada te impede de utilizar SessionContext), geralmente ela é utilizada para outros tipos de serviço(Temporização,Segurança programática,Serviços de gerencia de Transação,etc...)
maior_abandonado wrote:eu não quero trabalhar com InnitialContext, preencher o properties na mão, com informações que dependem de container para container...
Existem várias formas de se fazer....Já que não quer trabalhar com InitialContext você pode colocar declarações no web.xml para o container injetar a dependência para você...
Tente colocar isto no seu web.xml e verifique se a variável carrinho continua nula:
Teste desta forma, se não funcionar poste o erro para que possamos te ajudar...
Existem outras alternativas que não precisam de lookup, nem de declarações no web.xml....Uma delas seria o Jboss Seam(só que no caso seu controller é o JSF, não sei se é do seu agrado....)
Boa sorte...
primeiro obrigado ai, to te dando mó trabalho...rs
bom... continuando, eu não to usando o JSF, é só um projetinho que seria de exemplo, bem pra teste mesmo de EJB, só to usando uma servlet como se fosse o meu controler, imaginando que quero injetar o EJB que seria o meu modelo, até pra não fugir muito do padrão... enfim, se estou errando em algo quanto a essa parte de camadas fico até grato em me avisar aonde, mesmo que a minha duvida seja quanto ao EJB, em como injeta-lo, isso faz parte...
enfim, eu estava querendo injeta-lo, só pelas anotações mesmo, quero fugir do XML... a menos que não seja possivel isso, é claro... não vi nenhum problema descrito na inicilização do JBOSS, exceto é claro o null pointer que dava por que o objeto anotado com @EJB estava nulo, ou por que o meu objeto apontado com o SessionResource estava nulo, não vi nada no log printado do JBOSS que dissesse o por que destes objetos não terem sido inicializados, tem como olhar minha classe e meu log para ver se tem alguma coisa que eu não percebi? (obrigado denovo...)
|
espero ter ajudado...
falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2010 15:31:58
|
breno500as
Virtual Machine Man
Membro desde: 11/10/2007 17:53:07
Mensagens: 614
Localização: Belo Horizonte - MG
Offline
|
maior_abandonado wrote:enfim, eu estava querendo injeta-lo, só pelas anotações mesmo, quero fugir do XML... a menos que não seja possivel isso, é claro...
Em um componente WEB nunca testei com anotações sem as declarações no web.xml(se tiver um tempinho dou uma olhada quando chegar do trabalho), mas presumo que não é possível não, provavelmente o container vai ignorar..... Mas pode ser que alguém aqui do fórum já tenha feito...enfim, é pesquisar e ir testando... Como te falei você também pode tentar o Seam, ele integra EJB + JSF, sem InitialContext + lookup e sem delcarações no web.xml, mas já que seu projeto é apenas de teste tranquilo em não utiliza-lo....
maior_abandonado wrote: não vi nenhum problema descrito na inicilização do JBOSS, exceto é claro o null pointer que dava por que o objeto anotado com @EJB estava nulo, ou por que o meu objeto apontado com o SessionResource estava nulo, não vi nada no log printado do JBOSS que dissesse o por que destes objetos não terem sido inicializados, tem como olhar minha classe e meu log para ver se tem alguma coisa que eu não percebi? (obrigado denovo...)
Então, já tinha visto sua log, os pontos a se ter atenção são os mesmos: Eu mudaria sua lógica de: Classe => PreencheListaSessao Classe => TesteBO para: Classe => PreencheListaSessao Classe => TesteBO Em relação aos componentes de negócio, é interessante entrar no jmx-console e ir em JNDI View para ver se todos seus EJBs foram associados a JNDI com sucesso...
This message was edited 1 time. Last update was at 12/04/2010 16:07:01
|
Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
Sun Certified Business Component Developer 5.0 |
|
|
 |
|
|
|
|