Ajuda sobre chamar metodo Local...EJB....Help?

Caros,

mas queria entender como faço pra chamar via Local o metodo via remoto
funcionou queria entender como faz pra Local…

se alguem puder me ajudar a entender …sou novato e aceito ajuda…

grato…

abs


Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at teste.TesteCalculadora.getHome1(TesteCalculadora.java:48)
	at teste.TesteCalculadora.imprimeLocal(TesteCalculadora.java:61)
	at teste.TesteCalculadora.main(TesteCalculadora.java:68)

private CalculadoraLocalHome getHome1() throws NamingException, ClassNotFoundException, InstantiationException, IllegalAccessException {
		CalculadoraLocalHome localHome = null;
		InitialContext context = new InitialContext(properties);
				 
        Object object = context.lookup("CalculadoraLocal");
        
        localHome = (CalculadoraLocalHome)object;
        System.out.println("localHome is null ? "+localHome.equals(null));
        return localHome;

    	
	}

A “forma de chamar” é a mesma. A diferença é que ele só pode ser “chamado” por um cliente que esteja na mesma jvm, diferentemente do remoto, que pode ser usado por um cliente que está em outra jvm.

[quote=paribe]Caros,

mas queria entender como faço pra chamar via Local o metodo via remoto
funcionou queria entender como faz pra Local…

se alguem puder me ajudar a entender …sou novato e aceito ajuda…

grato…

abs


Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at teste.TesteCalculadora.getHome1(TesteCalculadora.java:48)
	at teste.TesteCalculadora.imprimeLocal(TesteCalculadora.java:61)
	at teste.TesteCalculadora.main(TesteCalculadora.java:68)

[code]

private CalculadoraLocalHome getHome1() throws NamingException, ClassNotFoundException, InstantiationException, IllegalAccessException {
CalculadoraLocalHome localHome = null;
InitialContext context = new InitialContext(properties);

    Object object = context.lookup("CalculadoraLocal");
    
    localHome = (CalculadoraLocalHome)object;
    System.out.println("localHome is null ? "+localHome.equals(null));
    return localHome;

	
}

[/code][/quote]
Que versão do EJB você está usando?

Pelo jeito você está utilizando a versão 2.x
E parece que já está implementado o lookup para chamada local, pois neste trecho de código você está retornando justamente um objeto EJB encapsulado na interface local.

O erro que apareceu foi sobre a configuração do JNDI para acessar seus objetos no App Server. Provavelmente você fez o deploy para o servidor e está tentando acessar o ejb, com um cliente java, fora do escopo do servidor. Precisa configurar os parâmetros de JNDI do App Server. Dê uma olhada na especificação do seu App Server para mapear seu arquivo de configuração JNDI.

Outra coisa:
Para fazer esse tipo de chamada, você só conseguirá usando uma interface remota, pois como o pozzo disse, e torno a repetir: “as chamadas locais só poderão ser realizadas dentro de um contexto de mesma JVM, sendo no caso a que está atendendo o seu App Server cujo ejb foi disponibilizado”.

Espero ter ajudado.
Abs,

jboss-4.2.2.GA

EJB 2.1

É que estou aprendendo EJB e por um acaso não teria um exemplo pratico dessa situação ou site
para visualizar e assimilar melhor esse conceito…

abs