Deployment Ejb3 + Jboss 4.0.5

3 respostas
M
Usei o NetBeans 5.5 e fiz um pequeno exemplo usando EJB3

Meu Ejb:



@Stateless(name=Example, mappedName=ejb/CalcularBeanJNDI)

public class CalcularBean implements pkgEjb.CalcularLocal {




Quando chamo a aplicação Cliente faço:

InitialContext ctx = new InitialContext();

CalcularLocal bean = (CalcularLocal) ctx.lookup(ejb/CalcularBeanJNDI);

QUando ele executa esta linha dá o seguinte erro:
javax.naming.NameNotFoundException: ejb not bound …

Para fazer o Deploy apenas copie o arquivo Jar do EJB para a pasta:
c:\Jboss\jboss-4.0.5.GA\server\default\deploy

Meu Jboss está rodando, e acessei o WebConsole dele o qual mostra em JNDIView o meu EJB:

± Example (class: org.jnp.interfaces.NamingContext)

|   ± local (proxy: $Proxy85 implements interface pkgEjb.CalcularLocal,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBLocalObject)

O que pode estar errado ? Além de copiar o JAR preciso fazer mais algo ?

3 Respostas

D

Fera…acho q. vc precisa configurar o jndi.properties…

dá uma olhadinha nessa thread…

http://www.ime.usp.br/~reverbel/SMA-06/maillist/msg00007.html

qquer dúvida…posta aí!

t+

F

No seu caso, acredito que o JBoss mapeou seu EJB como “Example/local”, pois é o que está mostrando o JNDI View.

Tente fazer o lookup assim:

ctx.lookup("Example/local")
M

Conforme foi sugerido modifique o meu Cliente para:

Properties properties = new Properties();

properties.put(java.naming.factory.initial,org.jnp.interfaces.NamingContextFactory); properties.put(java.naming.factory.url.pkgs,"=org.jboss.naming:org.jnp.interfaces");

properties.put(java.naming.provider.url,localhost:8080);
Context context = new InitialContext(properties);

InitialContext ctx = new InitialContext();

CalcularLocal bean = (CalcularLocal) ctx.lookup(“Example/local”);

–>> Agora ele passa pelo Lookup sem dar erro, mas quando chama qualquer um dos métodos como:
String Ola = bean.digaOla(“Ola EJB3”);

dispara a seguinte mensagem:

Exception in thread “main” javax.ejb.EJBException: Invalid invocation of local interface (null container)

at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:75)

at $Proxy0.digaOla(Unknown Source)

Alguma idéia ?

Criado 21 de fevereiro de 2007
Ultima resposta 22 de fev. de 2007
Respostas 3
Participantes 3