Problema no @EJB em JARs diferentes

4 respostas
joaopaulolobo

Pessoal, tenho um component.jar e um crud.jar

Quando estou no component.jar e tento injetar (@EJB) uma classe q esta no mesmo jar, funcionar.

Mas Quando estou no component.jar e tento injetar (@EJB) uma classe q esta no crud.jar da esse erro .

Importante: Para compilação funciona, uma camada exerga o outro jar normal... mas na hora de subir o servidor !!! Da o erro abaixo

<UNKNOWN jboss.j2ee:jar=Teste_Site_Component.jar,name=br.com.teste.portal.barco.bean.StartBean
Remote,service=EJB3> -> ** UNRESOLVED Demands 'Class:br.com.teste.portal.barco.bean.TesteInjetarLocal' **

Estou usando o Eclipse + jboss + EJB3.

CLASSE Q ESTA NO JAR do COMPONENT
package br.com.teste.portal.barco.bean;

import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 * Session Bean implementation class StartBean
 */
@Stateless(name = StartBeanRemote.JNDI_NAME)
public class StartBean implements StartBeanLocal, StartBeanRemote {

	
	@EJB
	private AuxiliarBeanRemote auxiliarBean;
	
	@EJB
	private TesteInjetarRemote  testeInjetarRemote;//essa interface esta em outro jar, na compilação ele exerga a classse normal
	
	
	   public int StartBeanMetodo() {
        
    	    	
    	testeInjetarRemote.TesteInjetar();
    	
    	return 123;
    }
}

CLASSE Q ESTA NO JAR do CRUD

package br.com.teste.portal.barco.bean;

import javax.ejb.Stateless;

/**
 * Session Bean implementation class TesteInjetar
 */
@Stateless(name = TesteInjetarRemote.JNDI_NAME)
public class TesteInjetar implements TesteInjetarRemote, TesteInjetarLocal {

    /**
     * Default constructor. 
     */
    public void TesteInjetar() {

    	System.out.println("TESTE INJETAR ##############");
    	
    }

}

Valeu !!!

4 Respostas

mmilanez

Você está utilizando um projeto EAR? Se estiver, seus dois jars estão declarados corretamente no application.xml ?

joaopaulolobo

Opa.

Não estou usando projeto EAR… Estou gerando os jars direto na pasta deploy do JBoss…

Pelo de sei, no JBoss não existe o arquivo application.xml, pois não tem a necessidade de mapear os Jars, pois tudo q estiver na pasta Deploy o JBoss ja sobe !!!

Valeu

mmilanez

joaopaulolobo:
Opa.

Não estou usando projeto EAR… Estou gerando os jars direto na pasta deploy do JBoss…

Pelo de sei, no JBoss não existe o arquivo application.xml, pois não tem a necessidade de mapear os Jars, pois tudo q estiver na pasta Deploy o JBoss ja sobe !!!

Valeu

O arquivo application.xml é relativo a projetos EAR e deve estar presente na pasta META-INF. Através dele voê indica quais são os módulos, EJB ou não, participantes de sua aplicação, desta forma o problema que você está tendo não irá ocorrer.

Dê uma olhada no proóprio site da Red Hat, como criar e configurar o arquivo, mas você terá que trabalhar com projeto EAR. Da forma como você iniciou, não saberei dizer se funciona…

Falows!

http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/Server_Configuration_Guide/ch01s04s02.html

joaopaulolobo

Valeu… Resolvido…

Gerei um arquivo EAR… E coloquei a application.xml…

É isso ae… Funcionou

Criado 22 de janeiro de 2009
Ultima resposta 27 de jan. de 2009
Respostas 4
Participantes 2