ejb3 + jndi

9 respostas
Cherubini

Olá pessoal,

eu estou com um problema em um teste que estou fazendo:

criei um projeto base, um projeto ejb e um client e um EAR,

no client atraves de JNDI estou tentando acessar um EJB remoto, mais ele só gera esse erro:

Exception in thread "main" javax.naming.NameNotFoundException: base-ear not bound
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
	at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
	at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
	at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
	at sun.rmi.transport.Transport$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
	at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:682)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at ClienteCarrinhoLivraria.main(ClienteCarrinhoLivraria.java:13)

eu estou usando o JBoss 5.0 !!

minha classe cliente:

public class ClienteCarrinhoLivraria {

	public static void main(String[] args) throws NamingException {

		InitialContext context = new InitialContext();
		Carrinho carrinho = (Carrinho) context.lookup("base-ear/CarrinhoBean/remote");

		Livro livro = new Livro();
		livro.setNome("Alice no pais das maravilhas");
		livro.setPreco(15.0);

		carrinho.addLivro(livro);

		System.out.println(carrinho.getTotal());

		carrinho.finalizaCompra();

	}

}

minha classe CarrinhoBean no projeto EJB

@Stateful
@Remote(Carrinho.class)  
public class CarrinhoBean implements Carrinho {
  //metodo aqui
}

e meu JNDI no projeto client dentro do src:

java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
java.naming.provider.url =jnp\://localhost\:1099

Bom alguem sabe o pq q nao esta achando meu projeto EAR?
Olhei no deploy do Jboss e o projeto esta lá

bom ficarei no aguardo e desde já agradeço

9 Respostas

E

Cara, pelo erro ele não ta achando o EAR. Dentro do EarContent tem um application.xml (ou coisa assim). como ta o conteudo dele ?

Cherubini

application.xml :

<?xml version="1.0" encoding="ASCII"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">
  <display-name>base-ear</display-name>
  <module>
    <web>
      <web-uri>jsf.war</web-uri>
      <context-root>jsf</context-root>
    </web>
  </module>
  <module>
    <ejb>base-earEJB.jar</ejb>
  </module>
</application>

esta desse jeito!!!

E

Cara, não sei se é isso mas:

java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory  
   java.naming.provider.url =jnp\://localhost\:1099

depois do jnp, acho que não tem essa barra, acho que é assim:

java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory  
   java.naming.provider.url =jnp://localhost\:1099
Cherubini

egamorim tipo eu ja tentei tirar essa barra
mais quando eu salvo e abro de novo ela aparece la! HEuihEiuhEiuhIUHE

eu nao sei pq, mais ela sempre ta la !!é só salvar e fechar e abrir o arquivo de novo q ela aparece! xP

eu ja coloquei outra linha q vi

java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
java.naming.provider.url = jnp://localhost:1099 
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

mais msm assim nao funciona!Eu acho q se fosse erro do arquivo jndi ele geraria erro q nao consegue inicializa-lo!

mais nada, ele nao acha msm o meu EAR no lookup! =/

Cherubini

o mais engraçado q quando uso com datasource para conexao e com injecao de dependecia
ele funciona legal!

Mais com JNDI ele nao vai cara!=(

E

Puxa cara, vou pesquisar aqui, se vc achar a resposta manda ela ai que fiquei curioso agora. Não conheço muito de EJB mas ao que parece ta td certo.

Cherubini

Dureza msm cara !!!

ja tentei fazer isso com o Jboss 4.2 e com o Jboss 5.0

no Jboss 5.0 ele cria meu EAR bonitinho no deploy mais msm assim nao aparece no console nem no jmx-conlose do jboss!!!

agora o Jboss 4.2 nem criar o EAR ele cria cara !=/

eu ja segue um monte de tutorial e nada cara, faço igual aos caras mais nada ! heiuheiue

bom vo tentando ainda, qualquer coisa se achar comenta tbm!

vlws

Cherubini

agamorim veio era uma porcaria de um import q estava errado

estava importando :

import com.sun.xml.internal.ws.developer.Stateful;

ao inves de:

import javax.ejb.Stateful;

bom pelo menos fica como uma dica !! xD

vlws até a proxima ! xD

E

Hehe … quem é que nunca quebrou a cabeça com um import errado antes não eh mesmo !!! :smiley:

vlw

Criado 18 de agosto de 2009
Ultima resposta 18 de ago. de 2009
Respostas 9
Participantes 2