2016-10-12 2 views
0

Ich habe Fehler während meines Projekt runing es richtig eingesetzt ist, aber ich habe diesen FehlerFehler beim Java-EE-Projekt mit Jboss und Wildfly 9.x runing

javax.naming.NoInitialContextException: Need Klassennamen in Umgebung angeben oder Systemeigenschaft oder als Applet-Parameter oder in einer Anwendungsressourcendatei: java.naming.factory.initial bei javax.naming.spi.NamingManager.getInitialContext (Unknown Source)

hier ist mein Haupt-Code:

try { 
     Context context = new InitialContext(); 
     UserServicesRemote userservicesremote = (UserServicesRemote) context.lookup("behealthy-ear/behealthy-ejb/UserServices!services.UserServicesRemote"); 
    } catch (NamingException e) { 
     e.printStackTrace(); 
    } 

Meine kanonische Adresse gilt: enter image description here

+0

Genau wo ist das Code-Schnipsel, das Sie ausführen? Sie sagen "Hauptcode" - ist dies eine Client-Anwendung, die versucht, sich mit einem Remote-EJB auf einem Server zu verbinden? – Gimby

+0

ja Es ist eine Client-Anwendung, ich versuche, eine Verbindung zu meinem Remote-EJB – hela

Antwort

0

Vorschlag: Vielleicht sollten Sie jboss-client.jar in Ihre Client-Umgebung hinzufügen. ../bin/client/

0

diese Ausnahme (NamingException), dass der Name des Dienstes anzeigt, nicht korrekt ist. Wenn Sie den Server bereitstellen, können Sie im Protokoll die Namen der bereitgestellten Dienste sehen. Beispiel:

java:global/backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal 
java:app/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal 
java:module/UserBOEJB!org.backend.bo.UserBOLocal 
java:global/backend-ear/backend-ejb/UserBOEJB 
java:app/backend-ejb/UserBOEJB 
java:module/UserBOEJB 

Sie können die erste Zeile Ihres Protokolls (global) für die Suche verwenden.

+0

mein JNDI-Name ist korrekt, und es war der Screenshot des JNDI-Namen, wenn ich den Server laufen. – hela

+0

haben Sie die erste Route versucht: context.lookup ("java: global/gesund-ear/behealthy-ejb/UserService! Services.UserServicesRemote"); – Gaalvarez

0

Der Fehler stammt nicht von der eigentlichen Suche, aber das JNDI-System kann nicht ordnungsgemäß initialisiert werden.

Wenn Sie einen eigenständigen Client haben Sie eine Datei jndi.properties wie folgt hinzufügen müssen:

java.naming.factory.url.pkgs=org.jboss.ejb.client.naming 

und eine Datei jboss-ejb-client.properties wie folgt aus:

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false 
remote.connections=default 
remote.connection.default.host=localhost 
remote.connection.default.port = 8080 
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false 

Sie müssen jboss-client.jar zum Klassenpfad hinzufügen und den korrekten JNDI-Namen im ejb: -namespace verwenden, nicht den im java: -namespace aus der Logdatei. Es sieht so aus:

ejb:backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal 
Verwandte Themen