| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 21:44:42
|
Machado107
Thread.start()
![[Avatar]](/images/avatar/0e230b1a582d76526b7ad7fc62ae937d.jpg)
Membro desde: 01/04/2006 19:27:50
Mensagens: 46
Localização: Rio de Janeiro
Offline
|
Olá pessoal,
Estou tentando fazer uma aplicação que use entity beans especificação do EJB 3 pra rodar no JBOSS. Mas estou encontrando dificuldades, tanto para fazê-la funcionar quanto para encontrar informações a respeito. Já garimpei na internet mas não encontro nada direto sobre o assunto, e quando encontro é cheio de links quebrados ou/e classes faltando.
Alguêm conhece algum bom tutorial, onde eu possa estudar e botar pra funcionar entity beans no JBOSS?
Abraços,
Machado
|
"A mente é seu próprio lugar, e em si é capaz de do Inferno um Paraíso, do Paraíso um Inferno" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 22:19:56
|
fmeyer
Moderador
Membro desde: 22/02/2005 17:26:29
Mensagens: 1583
Localização: Sao Paulo
Offline
|
http://docs.jboss.org/ejb3/app-server/tutorial/
|
Fernando Meyer http://fernandomeyer.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/11/2006 23:00:48
|
Machado107
Thread.start()
![[Avatar]](/images/avatar/0e230b1a582d76526b7ad7fc62ae937d.jpg)
Membro desde: 01/04/2006 19:27:50
Mensagens: 46
Localização: Rio de Janeiro
Offline
|
Opa! Valeu pela dica. Algumas coisas ficaram mais claras agora, mas outras ainda continuam meio obscuras pra mim.
Eu posso ou não posso usar injeção de entity beans no JBOSS?
O código abaixo, deveria funcionar ou eu tenho que fazer um ContextLookup?
Quando eu rodo ela recebo um NullPointerException no finally. Testando esse EntityManager realmente está null, mas não faço nem idéia do porque. Talvez porque algum arquivo de configuração esteja errado ou simplismente o JBOSS não suporta alguma coisa que estou tentando fazer.
Segue meu persistence.xml:
E o meu *-ds:
Pelo menos checando no console JMX do JBOSS aparentemente esse JNDI esta correto.
Quem puder/tiver paciência de me dar uma força fico devendo uma.
Abçs,
Machado
|
"A mente é seu próprio lugar, e em si é capaz de do Inferno um Paraíso, do Paraíso um Inferno" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 02:07:35
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
Pela especificacao, deveria funcionar!
mas voce vai ter um problema de ter uma variavel de instancia em uma Servlet como um EntityManager por causa do acesso concorrente. prefira inserir um EntityManagerFactory ou entao anotar com PersisnteceContext a classe, para puxar o EntityManager por jndi
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 14:03:24
|
Machado107
Thread.start()
![[Avatar]](/images/avatar/0e230b1a582d76526b7ad7fc62ae937d.jpg)
Membro desde: 01/04/2006 19:27:50
Mensagens: 46
Localização: Rio de Janeiro
Offline
|
Acho que já está anotado com o PersistenceContext, mas eu li em algum lugar que é melhor usar um EntityManagerFactory mesmo.
O detalhe é que coloquei o Factory e continuo recebendo um NullPointerException.
Bom, vou dar uma revisada total no cótigo, e então partir pro desespero e baixar o JBoss 4.05, talvez seja alguma coisa relacionada a minha instalação do JBoss (4.04).
E valeu pela ajuda, agora sei que não estou fazendo nada absurdo, deve ser alguma bobeira.
|
"A mente é seu próprio lugar, e em si é capaz de do Inferno um Paraíso, do Paraíso um Inferno" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/11/2006 20:30:29
|
Machado107
Thread.start()
![[Avatar]](/images/avatar/0e230b1a582d76526b7ad7fc62ae937d.jpg)
Membro desde: 01/04/2006 19:27:50
Mensagens: 46
Localização: Rio de Janeiro
Offline
|
Pessoal,
Quero deixar uma solução que encontrei caso alguém tenha o mesmo problema, e uma pergunta.
Primeiro a sulução. Tirei os annotations.
O código da classe onde estava acontecendo a exceção ficou assim:
Acho que ficou melhor do que antes por causa da inclusão do Factory...
A pergunta é... Alguém sabe se JBOSS aceita ou não annotations??
Falou.
Machado
|
"A mente é seu próprio lugar, e em si é capaz de do Inferno um Paraíso, do Paraíso um Inferno" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2006 15:16:48
|
hyourinmaru
What is classpath?
Membro desde: 05/07/2006 22:22:23
Mensagens: 5
Localização: Florianópolis - SC
Offline
|
O JBoss aceita annotations, o problema é o container servlet (Tomcat) que não suporta injeção de dependência na atual versão (5.x), que ja vem encorporado ao JBoss.
Há rumores de que na próxima versão (6) é que o tomcat vai suportar annotations. Por enquanto a solução que vc encontrou é a única possível...
Sobre a versão do JBoss, existe um projeto no JBoss, JEMS Installer, que é um pacotão contendo a versão mais atual dom JBoss e do EJB3, mais uns bagulhos. A vantagem é que não precisa ficar 'remendando' a instalação do JBoss instalando separado o EJB3 e configurando. segue o link caso açguém queira dá uma olhada: http://labs.jboss.com/portal/jemsinstaller/?prjlist=false
Obs: Na instalação do JBoss tem que escolhar a opção 'EJB-3' pra funcionar. Se escolher 'All' ele não instala o EJB3...
[]'s
|
"Não tenha forma definida, seja como a água. Se verte água numa xícara, ela se torna xícara; se a verte numa garrafa, ela se torna garrafa; se a verte num bule de chá, ela se torna um bule de chá. A água pode fluir ou pode quebrar. Seja água meu amigo, seja água..."
[Bruce Lee] |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/11/2006 16:54:20
|
Machado107
Thread.start()
![[Avatar]](/images/avatar/0e230b1a582d76526b7ad7fc62ae937d.jpg)
Membro desde: 01/04/2006 19:27:50
Mensagens: 46
Localização: Rio de Janeiro
Offline
|
Hummm...
O que confunde é que ele usa como container de servlet o Tomcat e um módulo de EJB3.
Aí no caso ele aceita annotation pra se fazer as classes de persistência, como @entity, mas não aceita no servlet na hora de fazer a injeção.
Então o lance é ficar ligado quando sair a próxima versão...
Flw
|
"A mente é seu próprio lugar, e em si é capaz de do Inferno um Paraíso, do Paraíso um Inferno" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2007 23:11:17
|
carlos.macleod
Debugger
![[Avatar]](/images/avatar/04b01177431497d8545941c662c2a3a6.jpg)
Membro desde: 16/08/2007 05:02:02
Mensagens: 56
Offline
|
Estou com um problema parecido, só que nos meus DAOs. Retirei o @PersistenceContext e o context do sesseion bean e passei para o DAO, que fica em outro pacote ( Tenho de manter os DAOs e os POJOs separados do Session Bean, em um pacote a parte, pois também pretendo usá-los em uma aplicação Stand-Alone ) e o código que antes funcionava deixou de funcionar pq o EntityManager fica null
This message was edited 1 time. Last update was at 28/08/2007 23:12:38
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2007 03:51:39
|
carlos.macleod
Debugger
![[Avatar]](/images/avatar/04b01177431497d8545941c662c2a3a6.jpg)
Membro desde: 16/08/2007 05:02:02
Mensagens: 56
Offline
|
Descobri a causa do problema mas não me agradou muito:
"injection only occurs in EJBs, not in plain classes"
http://www.jboss.org/?module=bb&op=viewtopic&t=67611
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2007 10:59:16
|
cetr1n
What is classpath?
Membro desde: 27/08/2007 16:00:17
Mensagens: 7
Localização: Maringá / Curitiba
Offline
|
Ow Carlos, lá no seu @PersistenceContext tenta deixar implicito o unitname.
This message was edited 1 time. Last update was at 30/08/2007 11:00:44
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2007 12:14:46
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Paulo Silveira wrote:Pela especificacao, deveria funcionar!
mas voce vai ter um problema de ter uma variavel de instancia em uma Servlet como um EntityManager por causa do acesso concorrente. prefira inserir um EntityManagerFactory ou entao anotar com PersisnteceContext a classe, para puxar o EntityManager por jndi
O mesmo se aplica para EJBs que referenciam outros EJBs?
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2007 14:50:32
|
Tecnoage
GUJ Master
Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline
|
O problema que o Paulo falou se refere ao entityManager não ser threadSafe por natureza... Porém algumas implementações como a da Oracle por exemplo garantem a qualidade ThreadSafe do entityManager, porém vc cai na dependência de toolvendors...
|
Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2007 14:56:23
|
Tecnoage
GUJ Master
Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline
|
danieldestro wrote:
Paulo Silveira wrote:Pela especificacao, deveria funcionar!
mas voce vai ter um problema de ter uma variavel de instancia em uma Servlet como um EntityManager por causa do acesso concorrente. prefira inserir um EntityManagerFactory ou entao anotar com PersisnteceContext a classe, para puxar o EntityManager por jndi
O mesmo se aplica para EJBs que referenciam outros EJBs?
Se vc está falando de classes como Servelets e MBeans, sim. Não é legal injetar Stateful SessionBeans em classes como servlets e MBeans devido à concorrência, embora o mesmo não se aplica a Stateless SessionBeans. No caso de @EJB em outro EJB não há problemas, daí o caso dos EAOs poderem ser injetados nos session Beans se os mesmo forem EJBs.
|
Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/08/2007 14:57:07
|
Tecnoage
GUJ Master
Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline
|
Por isso que ainda se usa EJB3 com Spring2.x...
|
Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br |
|
|
 |
|
|