2010-01-04 3 views
9

Wenn ich eine JMS-bezogene Anwendung ausführe, stoße ich auf den folgenden Ausnahmefehler.Ausnahme: Sie müssen den Klassennamen in der Umgebungs- oder Systemeigenschaft angeben: java.naming.factory.initial

javax.naming.NoInitialContextException: Need in Umwelt oder Systemeigenschaft angeben Klassenname oder als Applet-Parameter oder in einer Anwendungsressourcendatei: java.naming.factory.initial

Wir verwenden Sun Application Server 9.1

Irgendeine Idee, was wir vermissen?

Ich habe bereits versucht, das Hinzufügen der folgenden aber Ergebnis immer noch die gleichen

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

    Context ctx = new InitialContext(env); 
+2

Kein vollständiges Duplikat: Die Eigenschaften, die für diesen Anwendungsserver festgelegt werden sollen, werden dort nicht angegeben. Auf den ersten Blick tut der Fragesteller, was empfohlen wird, und stimmt mit den Sun-Dokumenten überein. – djna

+0

Kein vollständiges Duplikat. Sie müssen die Datei jndi.properties in den Klassenpfad einfügen. Für weitere Informationen verwenden Sie folgenden Link. https://cwiki.apache.org/confluence/display/qpid/How+to+Use+JNDI Geben Sie Ihre Namensfabrik und den Namen der Warteschlange an. Sollte gut funktionieren. –

Antwort

3

Ich hatte das gleiche Problem während der Arbeit mit Frühling & weblogic. Ich hatte es gelöst, indem ich zwei Eigenschaften einstellte

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

6

Ein sehr häufiger Fehler kann sein, dass Sie die jboss-client.jar nicht hinzugefügt haben ! oder alternatives jar bei Verwendung von weblogic.