Lookup EJB Por um Cliente no JBoss7

Olá a todos,
depois de muita tentativa (muita mesmo) venho aqui pedir help pra ve se eu consigo fazer esse maldito lookup usando o jboss7.1.1.

Rodei a comunidade jboss no forum e pah segui o que os caras disseram mais até agora nada.

o exemplo é bastante simples:

tenho meu bean “MeuBean” e a interface remota dele (MeuBeanRemote) e também tenho meu cliente “Teste”.

MeuBeanRemote:

package br.com.teste;

import javax.ejb.Remote;

@Remote
public interface MeuBeanRemote {

	public String helloWorld();
}

MeuBean:

package br.com.teste;

import javax.ejb.Stateless;

/**
 * Session Bean implementation class MeuBean
 */
@Stateless(mappedName="MeuBean")
public class MeuBean implements MeuBeanRemote {

    /**
     * Default constructor. 
     */
    public MeuBean() {
        // TODO Auto-generated constructor stub
    }
    
    public String helloWorld(){
    	return "Hello World";
    }

}

Pego esse cara e ponho em um EAR chamado “testandoejbEAR” e faço deploy no jboss. Até ai blz, o deploy da certo.

O problema é agora na aplicação cliente. Antes eu coloco no build path a referencia do projeto que corresponde o EJB e adiciono o jar do jboss “jboss-client.jar”.
Segue o código fonte:

Teste:

import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import br.com.teste.MeuBeanRemote;


public class Teste {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		Properties props = new Properties();
		props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
		props.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
		props.put(Context.PROVIDER_URL, "remote://localhost:4447");
		props.put("jboss.naming.client.ejb.context", true);
		
		props.put(Context.SECURITY_PRINCIPAL, "user");
        props.put(Context.SECURITY_CREDENTIALS, "pass");
        
        Context ctx = new InitialContext(props);
        MeuBeanRemote meuBean = (MeuBeanRemote) ctx.lookup("MeuBean");
        System.out.println(meuBean.helloWorld());
	}

}

Não sei mais o que eu faço. Esse mesmo lookup pega no JBoss 6 a unica coisa que muda sao esses parametros de configuração do JBoss, incluindo o Context.SECURITY, este que, nao tem no Jboss 6. Andando por ai vi que no JBoss 7 precisa desse SECURITY, dai eu adicionei um usuario no arquivo add-user.bat só que da erro agora no lookup namenotfoundexception

Exception in thread "main" javax.naming.NameNotFoundException: MeuBean -- service jboss.naming.context.java.jboss.exported.MeuBean at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97) at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178) at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127) at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)

Todo tipo de nome eu coloquei no lookup e nada!

Alguem poderia me ajudar, dizendo o que ta errado ou até mesmo disponibilizando um exemplo bastante simplório?
Eu agradeceria muito!

Bom Dia, Diego !!!
Estava com o mesmo problema, resolvi da seguinte maneira:

Obs: não sei se essa é a melhor maneira !!!

Coloquei o caminho exato que se encontra na JNDI.
Lembrando que eu tenho o EJB que implementa uma interface Local.

Object obj = ctx.lookup(“java:global/ExemploAplication/ExemploEJB/ClienteEJBBean!com.exemplo.session.ClienteEJBLocal”);

o JBoss 7 como é um AS que está sendo desenvolvido, ainda tem alguns detalhes não implementados,

até onde eu vi esse de lookup de EJBs era um deles. não sei se já foi resolvido ou ainda não, mas eu ainda faço lookup como o camolesi indicou.

Segue um tutorial de como fazer lookup de EJBs no JBoss 7.1 utilizando JNDI

https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI

Consulte para mais detalhes:

http://www.raydacosta.com/raydacosta/index.php?option=com_content&view=article&id=345:migrando-ejb-eap-51-para-ejb-as7&catid=39:j2ee&Itemid=61

https://docs.jboss.org/author/display/AS7/How+do+I+migrate+my+application+from+AS5+or+AS6+to+AS7

:smiley:

[quote=digaoneves]o JBoss 7 como é um AS que está sendo desenvolvido, ainda tem alguns detalhes não implementados,

até onde eu vi esse de lookup de EJBs era um deles. não sei se já foi resolvido ou ainda não, mas eu ainda faço lookup como o camolesi indicou.

Segue um tutorial de como fazer lookup de EJBs no JBoss 7.1 utilizando JNDI

https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI[/quote]

Isso no caso da versão 7. A versão 7.1 já é completa.

Lookups remotos não eram permitidos na versão 7, foram implementados na 7.1 (como pode ser visto aqui.