web-dev-qa-db-fra.com

Exception: nécessité de spécifier le nom de la classe dans la propriété d'environnement ou système: Java.naming.factory.initial

Lorsque j'exécute une application liée à JMS, je rencontre l'erreur d'exception suivante.

javax.naming.NoInitialContextException: nécessité de spécifier le nom de la classe dans la propriété d'environnement ou du système, ou en tant que paramètre d'applet, ou dans un fichier de ressources d'application: Java.naming.factory.initial

Nous utilisons Sun Application Server 9.1

Une idée de ce qu'il nous manque?

J'ai déjà essayé d'ajouter ce qui suit mais le résultat reste le même

    Properties env = new Properties();
    env.put("Java.naming.factory.initial","com.Sun.jndi.cosnaming.CNCtxFactory");

    Context ctx = new InitialContext(env);
9
DanDan

Une erreur très courante peut être que vous n'avez pas ajouté le fichier jboss-client.jar! ou bocal alternatif si vous utilisez weblogic.

7
Aditya Amgaonkar

Je faisais face au même problème lorsque je travaillais avec spring & weblogic. Je l'avais résolu en définissant deux propriétés

System.getProperties (). Put ("Java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory"); System.getProperties (). Put ("Java.naming.provider.url", "t3: // localhost: 80")

3
Saurabh

Dans mon environnement, configurer Context.INITIAL_CONTEXT_FACTORY n'était pas suffisant. Je devais également définir Context.URL_PKG_PREFIXES, expliqué à http://docs.Oracle.com/javase/6/docs/api/javax/naming/Context.html#URL_PKG_PREFIXES .

0
Michael