Glassfish v3 / JNDI-Eintrag kann nicht gefunden werden Probleme!

8

Ich habe Probleme beim Versuch, die EJB-Methode von einem Java Application Client aus aufzurufen. Hier ist der Code.

EJB Remote-Schnittstelle

%Vor%

EJB

%Vor%

Hauptklasse (ein anderes Projekt)

%Vor%

Nun, was ist mein Problem? JNDI-Eintrag für dieses EJB kann nicht gefunden werden!

%Vor%

Ich habe es mit verschiedenen JNDI-Einträgen versucht, aber nichts funktioniert (ich habe diese Einträge von der NetBeans-Konsole erhalten):

INFO: Portable JNDI-Namen für EJB HelloBeanExample: [java: global / Test / HalloBeanExample, java: global / Test / HelloBeanExample! com.test.HelloBeanRemote]

INFO: Glassfish-spezifische (nicht portable) JNDI-Namen für EJB HelloBeanExample: [ejb / HelloBean, ejb / HelloBean # com.test.HelloBeanRemote]

Also habe ich es mit den folgenden Einträgen versucht, aber ich habe die selbe Ausnahme:

  1. java: global / Test / HalloBeanExample
  2. java: global / Test / HalloBeanExample! com.test.HelloBeanRemote
  3. ejb / HalloBean
  4. ejb / HelloBean # com.test.HelloBeanRemote

Ich benutze Netbeans 6.8 und Glassfish v3!

    
REMP 18.01.2010, 17:33
quelle

4 Antworten

17

Tatsächlich ist Ihr Problem nicht das Nachschlagen der JNDI-Referenz Ihrer Bean oder Sie würden so etwas bekommen:

%Vor%

Nein, hier vermute ich ein einfaches Classpath-Problem, Ihnen fehlt einfach ein Jar auf dem Klassenpfad Ihres Client-Projekts. Mit GlassFish v3 sollte $GF_HOME/modules/gf-client.jar hinzugefügt werden, wie in erwähnt. Wie kann ich auf eine Remote-EJB-Komponente zugreifen? von einem eigenständigen Java-Client? in der EJB-FAQ von GlassFish (ich gehe davon aus, dass dieses Jar das aus Kompatibilitätsgründen mit GFv2 vorhandene $GF_HOME/lib/appserv-rt.jar ersetzen soll). Es ist jedoch wichtig, das gf-client.jar aus dem GlassFish-Installationsverzeichnis zu beziehen oder die im Manifest deklarierten Jars werden nicht gefunden.

  

gf-client.jar bezieht sich auf viele andere .jars aus dem GlassFish-Installationsverzeichnis, daher ist es besser, im Installationsverzeichnis selbst darauf zu verweisen, anstatt es (und alle anderen .jars) an einen anderen Ort zu kopieren.

Sobald Sie dies behoben haben, sollten Sie in der Lage sein, Ihre Bean mithilfe der JNDI-Namen zu suchen, die GlassFish in den Protokollen ausgibt. Ich würde vorschlagen, die neuen tragbaren globalen JNDI-Namen von Java EE 6 zu verwenden.

Nur für den Fall, die Was ist die Syntax für portable globale JNDI-Namen in EJB 3.1? < Ein Eintrag aus der GlassFish EJB FAQ bietet eine schöne Zusammenfassung dieser neuen Konvention. Und wenn Sie weitere Informationen wünschen, besuchen Sie: Ссылка .

    
Pascal Thivent 19.01.2010, 02:37
quelle
0

Ich habe etwas gefunden! Ich denke, es gibt einen "besonderen Weg", Komponenten mit NetBeans hinzuzufügen und zu konfigurieren! Ich habe die Netbeans Tutorials von den Webseiten gelesen und anscheinend habe ich die Dinge falsch gemacht! Also, das ist keine echte Lösung für dieses Problem, aber vielleicht, wenn Sie eine dieser Ссылка lesen, werden Sie das tun finde deine Antworten!

Grüße

    
REMP 05.04.2010 14:51
quelle
0

Ich habe das gleiche Problem festgestellt. Ich googelte das Web und befolgte Tutorials von Oracle Zeile für Zeile, um einen eigenständigen Java-Client einzurichten, aber es klappt immer noch nichts. Ich bin auf Ссылка gestoßen und habe Informationen, die ich bereits versucht habe, das Problem zu lösen.

Ich werde einfach meine IDE neu starten, säubern und das Projekt erstellen; kann auch das Projekt neu erstellen. Und wer weiß, wenn der Mond voll ist, könnte mein Code gut laufen :) Also, ich möchte das auch ausprobieren

    
Abraham 11.04.2012 19:03
quelle
0

Mein Stand-Alone-Client läuft endlich! Der Trick bestand darin, Netbeans IDE neu zu starten, die Anwendung zu deimplementieren und sie erneut zu implementieren. Dies sollte Ihr Problem beheben (vorausgesetzt, es gibt keinen anderen Fehler in Ihrem Code und Ihrer Konfiguration).

    
Abraham 12.04.2012 13:51
quelle