Ne peut pas instancier InitialContext avec serveur JBoss
Je suis en train de créer un InitialContext
pour que je puisse demander le JNDI pour certains enterprise java beans.
JBoss est en cours d'exécution fine, mais quand je lance le code java j'obtiens une exception.
Je suis pour l'exécution de JBoss 7.1
Voici mon code:
public class Test {
public static void main(String[] args){
InitialContext ctx=getInitialContext();
Object ref=null;
try {
ref = ctx.lookup("ParamEJB/remote");
} catch (NamingException e) {
System.out.println("Lookup Failed");
e.printStackTrace();
}
Param stub=(Param)PortableRemoteObject.narrow(ref, Param.class);
int times=stub.getTimes();
for(int i=0;i<times;i++)
System.out.println(stub.getMessage());
}
public static InitialContext getInitialContext(){
Hashtable<String,String> h=new Hashtable<String,String>();
h.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
h.put("java.naming.provider.url","localhost");
try {
return new InitialContext(h);
} catch (NamingException e) {
System.out.println("Cannot generate InitialContext");
e.printStackTrace();
}
return null;
}
}
Et après je démarre mon serveur JBoss, j'essaie d'exécuter le code java et je reçois cette exception:
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at client.Test.getInitialContext(Test.java:32)
at client.Test.main(Test.java:13)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Quel pourrait être le problème?
Avez-vous comprendre le pourquoi d'une CNFE se produit? stackoverflow.com/questions/17408769/...
OriginalL'auteur javaLovah | 2013-12-26
Vous devez vous connecter pour publier un commentaire.
La InitialContext propriétés ne sont pas appropriés pour JBoss version que vous utilisez.
Avec JBoss 7, les choses ont changé considérablement lors de l'appel d'un ejb à partir d'un client distant.
Cette lien peut vous aider à instancier correctement le InitialContex objet et de déterminer les JNDI nom de l'entrée. Seront également vous dire ce que sont les dépendances qui doivent être ajoutée pour le client classpath.
OriginalL'auteur Gabriel Aramburu
J'ai eu le même problème mais j'ai trouvé comment résoudre le problème. Tout ce que vous avez à faire est d'ajouter le jbossall-client.jar bibliothèque pour les clients de projet, et à faire!!! Vous pouvez trouver le fichier dans le dossier du client. e.g jboss-6.1.0.Final_GPT\client, j'ai été à l'aide de Jboss 6.1.0 Vous pouvez également obtenir de l'aide de ce lien https://community.oracle.com/thread/1157701?start=0
Espère que cela aide.
OriginalL'auteur Thato Pebane