JNDI “Impossible d'instancier une classe: org.jboss.de nommage.à distance.client.InitialContextFactory”
Je suis à l'aide de JBoss Serveur EJB Et j'ai besoin de JNDI application console pour obtenir une référence de session bean,
application console code ressemble à ceci
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Program {
public static void main(String[] args) throws NamingException {
//TODO Auto-generated method stub
Properties pr = new Properties();
pr.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
pr.put(InitialContext.PROVIDER_URL,"remote://localhost:4447");
InitialContext ic = new InitialContext(pr);
}
}
quand je lance l'application je reçois exception
Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: org.jboss.naming.remote.client.InitialContextFactory [Root exception is java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory]
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 Program.main(Program.java:14)
Caused by: java.lang.ClassNotFoundException: org.jboss.naming.remote.client.InitialContextFactory
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)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.sun.naming.internal.VersionHelper12.loadClass(Unknown Source)
... 5 more
- ajouter jboss-client.jar
- J'ai ajouté et je adde aussi jboss-à distance-namging. mais maintenant j'obtiens une erreur comme ce java.lang.NoClassDefFoundError: org/xnio/Options
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le contexte suivant pour vous connecter.
J'ai essayé et testé de mettre en place ce.
Puis j'ai eu cette erreur
Puis j'ai ajouté un utilisateur à l'aide de add-user.sh.
Succès de la poignée de main message est venu.
À surmonter d'erreur ci-dessus vous avez besoin de prêter attention à deux points.
Tout d'abord , Vous devez avoir jboss-client.jar dans classpath.
En deuxième lieu, selon Jboss version que vous utilisez, vous avez besoin de changer votre url du fournisseur.
Pour JBossAS 5 vous devez définir les propriétés suivantes dans l'environnement
Pour JBossAS 7 vous devez définir les propriétés suivantes dans l'environnement
vous pouvez avoir besoin d'ajouter jboss-client.jar et jboss-ejb3-common-client.jar dans votre bibliothèque
Vous avez besoin de dépendance:
https://mvnrepository.com/artifact/org.jboss/jboss-remote-naming/
Pour WildFly vous pouvez utiliser org.wildfly.de nommage.client.WildFlyInitialContextFactory forme:
https://mvnrepository.com/artifact/org.wildfly/wildfly-naming-client
Vous pouvez utiliser la nomenclature de fichier pour l'importation:
https://mvnrepository.com/artifact/org.wildfly/wildfly-ejb-client-bom