Minha saga com o JNDI

1 resposta
J

Gente, nao sei se vcs lembram mas eu travei um grande topico aki sobre como acesssar um ejb do jboss atraves do tomcat. enfim, não consegui tal coisa rs.

estou tentando fazer uma aplicação web que acesse remotamente um ejb. Facinho Facinho, tanto a aplicação quanto o EJB estao no MESMO GLASSFISH (v3)

O EJB tem o seguinte descritor de implantação:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
    <display-name>EJBNaMao</display-name>
    <enterprise-beans>
	<session>
		<ejb-name>CadastroImovel</ejb-name>
		<business-remote>neg.AcaoRemota</business-remote>
		<ejb-class>neg.Acao</ejb-class>
		<session-type>Stateless</session-type>
	
	<persistence-context-ref>
		<persistence-context-ref-name>
			persistence/UnidadePersistencia		
		</persistence-context-ref-name>
		
		<persistence-unit-name>
			UnidadePersistencia
		</persistence-unit-name>
		
		<injection-target>
			<injection-target-class>neg.Acao</injection-target-class>
			<injection-target-name>em</injection-target-name>
		</injection-target>
	</persistence-context-ref>
	</session>
	
</enterprise-beans>
</ejb-jar>

Na minha aplicação web eu usei a injeção via @EJB e funcionou CERTINHO:

@EJB
  private AcaoRemota ar;

Mas, por questões de estudo eu queria conseguir fazer o lookup do ejb via codigo:

public AcaoRemota getAcaoRemota() {

        try{
        InitialContext ctx = new InitialContext();
        return (AcaoRemota)ctx.lookup("java:comp/env/ejb/CadastroImovel");
        }
        catch(NamingException ne){
        ne.printStackTrace();
        }
        
        return null;

    }

e configurei no web.xml assim:

<ejb-ref>
        <ejb-ref-name>ejb/CadastroImovel</ejb-ref-name>
        <ejb-ref-type>Session</ejb-ref-type>
        <home/>
        <remote>neg.AcaoRemota</remote>
        <ejb-link>CadastroImovel</ejb-link>
 </ejb-ref>

Mas logo na hora do deploy da aplicação retorna o alerta:

WARNING: Unresolved : CadastroImovel

e por consequencia, na hora que uso a aplicação dá que CadastroImovel não foi encontrado …

alguem me ajudaaaa? rsrs

obrigado :slight_smile:

1 Resposta

J

Opa, consegui usando a seguinte forma:

pus AcaoRemota.class.getName() no lugar de java:comp/env/ejb/CadastroImovel

mas pq não esta funcionando com o java:comp/env/ejb/CadastroImovel ?

Criado 16 de janeiro de 2010
Ultima resposta 16 de jan. de 2010
Respostas 1
Participantes 1