Deploy EJB3 Ear

7 respostas
denis.analistajava

Olá,

Estou iniciando os estudos pra certificação SCBCD, e chegou o momento de testar um pouco.

Criei um projeto Ear, com um modulo ejb e um web. O modulo Ejb possui apenas um session bean + interface local, e o cliente possui
apenas um servlet que injeta o ejb e o utiliza.
Estou fazendo o deploy no Jboss, mas eu consigo ver no web-console apenas o meu módulo web, e o ejb não é injetado no servlet.

É necessario, incluir o arquivo ejb-jar.xml no projeto EJB?

Obs:. Criei os três projetos no eclipse, Ear, web, ejb.
Utilizei o assistente do eclipse para adicionar os modulos ao Ear.

E criei o application.xml abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<application>
	<display-name>EjbExample</display-name>
	<modelue>
		<ejb>EjbExample.jar</ejb>
	</modelue>
	<module>
		<web>
			<web-uri>EjbExampleClient.war</web-uri>
			<context-root>context</context-root>
		</web>
	</module>
</application>

Gerei o jar do Projeto Ear e publiquei no jboss.
Falta alguma informação para o deploy do ejb?

Abraços

7 Respostas

L

Que versão de Jboss você tá usando?

Não tenho certeza absoluta, mas parece que até as versões 4.2.x não estava implementado a injeção de EJBs em Servlets no JBoss. Li isso em algum tópico no GUJ de um pouco atrás.

[]'s

ffranceschi

Injetar um EJB dentro de um servlet é hoje um problema no JEE5… nao tem como, apesar de parecer estranho os dois objetos no mesmo container. O Jboss Seam é um framework que permite fazer isso, e agora tem uma nova especificação chamada “Web Bean” que faz isso, e vira com o JEE6

Abraços

L

ffranceschi:
Injetar um EJB dentro de um servlet é hoje um problema no JEE5… nao tem como, apesar de parecer estranho os dois objetos no mesmo container. O Jboss Seam é um framework que permite fazer isso, e agora tem uma nova especificação chamada “Web Bean” que faz isso, e vira com o JEE6

Abraços

Parace que no Glassfish é possível também…

denis.analistajava

A versão do Jboss que estou utilizando é 4.2.3.GA.

O que vocês sugerem para testes simples.

o ACC é uma alternativa?
Ou uso Jndi mesmo?

Mas acredito que exista outro problema, além da DI, pois no console do Jboss eu não estou vendo o meu Modulo Ejb.

ffranceschi

Eu uso Jboss 4.2.1 e uso via JNDI

@lavh Tava vendo sobre o que o disse do glassfish, e encontrei isso http://javahowto.blogspot.com/2007/07/simple-ejb-3-servlet-application.html , parece que funciona mesmo, não sabia! vlw

Abraço

Jair_Rillo_Junior

NO JBoss 4.2.x não é possível usar a annotation @EJB. A solução seria fazer a chamada via JNDI mesmo.

NO caso do Glassfish a annotation funciona. No Websphere também.

Eu coloquei exemplos dos 3 applications server no meu blog. http://www.jairrillo.com/blog/category/java/ejb3-java/

denis.analistajava

Vlw Pessoal.

Vou alterar a injeção do EJB para uma consulta JNDI e continuar testando meu exmplo.

Muito obrigado pela ajuda.

[]s

Criado 26 de fevereiro de 2009
Ultima resposta 27 de fev. de 2009
Respostas 7
Participantes 4