Problemsa com JNDI

Meu exemplo com JNDI lança o seguinte:

javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.f scontext.RefFSContextFactory …

ALguem pode me ajudar

ALguem mais ?

Como esta teu jndi.properties ?

Nem sabia que precisava !

Meu codigo:

import java.util.Hashtable;

import javax.naming.*;

public class TEsteJNDI {

public static void main(String[] args) {
	try {
		
		String name = "Teste"
		Hashtable env = new Hashtable();
		env.put(Context.INITIAL_CONTEXT_FACTORY,
				"com.sun.jndi.fscontext.RefFSContextFactory");

		Context ctx = new InitialContext(env);
		Object obj = ctx.lookup(name);
		System.out.println(name + " is bound to: " + obj);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}

Execao

javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.(InitialContext.java:197)
at TEsteJNDI.main(TEsteJNDI.java:13)
Caused by: java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
… 4 more

Você precisa ter um arquivo jndi.properties com algumas configurações.

Exemplo:

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

Esse arquivo vai ficar no raiz do projeto ?

Ele precisa estar no teu CLASSPATH.

Qual servidor de aplicação você esta utilizando?