Usando o JNDI

2 respostas
K

Estou tentando usar o jndi
O codigo que registra o objeto no jndi é :

import java.util.Hashtable;

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

public class JNDIBind {

	
	public static String JNDI = "sams/book";
	/**
	 * @param args
	 */
	
	public void Bind(String name, Object obj){
		try {
			Hashtable env = new Hashtable();			
			env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
			env.put(Context.PROVIDER_URL,"localhost:1099");	
			
			Context ic = new InitialContext(env);
			
			ic.bind(name,obj);
			System.out.println("Bind Realizado");
		} catch (NamingException e) {			
			e.printStackTrace();
		}
	}	
	
	public static void main(String[] args) {
		
				JNDIBind bind = new JNDIBind();
				bind.Bind(JNDI,"é nois");
	}

}

Isso funciona perfeitamente

O codigo do lookup vem a seguir :

mport java.util.Hashtable;

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

public class JNDILookup {
	public static String JNDI = "sams/book";
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Hashtable env = new Hashtable();			
		env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
		env.put(Context.PROVIDER_URL,"192.168.1.158:1050");
		
		
		try {
			Context ic = new InitialContext(env);
			String name = (String) ic.lookup(JNDI);
			
			System.out.println(" Recuparado objeto do lookup: "+name);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - marcossousa[/color][/size] :joia:

Agora vem o problema quando faço isso da maquina onde está o servidor jndi tudo funciona perfeitamente, mas quando tento fazer o lookup de uma uma outra maquina da mesma rede obtenho erro qual é o problema ??? o erro está reportado abaixo desde já agradeço o tempo dispendiado

javax.naming.CommunicationException: Can't find SerialContextProvider
at com.sun.enterprise.naming.SerialContext.getProvider(SerialContext.java:63)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:120)
at javax.naming.InitialContext.lookup(Unknown Source)
at JNDILookup.main(JNDILookup.java:19)

2 Respostas

M

Opa:

http://java.sun.com/products/jms/tutorial/jms_tutorial_faq.html

:okok:

K

O codigo esta correto, o problema estava no sistema operacional utilizado.
Estou usando Red Hat Enterprise , o jboss pega o endereço de um arquivo chamado hosts e ele deve ser condigurado para que o jboss se utilize dele para obter o ip no qual esta o servidor. Repara que isso é um problema exclusivo do Red Hat.

é nois mano …

Criado 24 de abril de 2006
Ultima resposta 24 de mai. de 2006
Respostas 2
Participantes 2