Ich versuche, eine zustandslose EJB aufzurufen, die auf einem Remote-Server implementiert ist. Ich kann die Bean aus meiner lokalen JBoss-Umgebung aufrufen, aber wenn ich remote.connection.default.host
auf den Host des Remote-Rechners ändere, funktioniert mein Client-Code nicht.
Das ist mein jboss-ejb-client.properties
:
Und mein Client-Code sieht so aus:
%Vor%Bitte helfen Sie.
Danke allen. Jack.
Dummerweise glaubte ich, dass ich die EJB-Implementierung auf Wildfly verstand. Ich kämpfte mehrere Tage lang mit dem Remote-Aufruf meiner zustandslosen EJBs aus einem Servlet und probierte verschiedene Konfigurationen aus Codeschnipsel aus, die ich im Internet gefunden hatte. Kein Glück.
Ich stieß schließlich auf die folgenden Leitfaden von JBOSS das hatte meine Probleme in etwa 10 Minuten gelöst. Ich hatte meine Remote-Ausgangsverbindung falsch konfiguriert. Die Wildfly-Entwickler haben einen großartigen Java EE-Anwendungsserver geschrieben, aber sie sind schrecklich mit erklärenden Fehlermeldungen.
Das Handbuch ist für AS7.2, aber es war relevant für meine Wildfly 8.2.0 Plattform.
Hoffentlich wird dies jemanden die Trauer retten, die ich erlitten habe.
Ihr Client-Code muss EJB 3 standardisierten JNDI-Namen verwenden, um auf Ihre Beans zuzugreifen
%Vor% Und überprüfen Sie WildFly server.log auf die exportierte JNDI-Bindung Ihrer Bean: java:jboss/exported/myapp/mymodule/myEjbName!my.own.package.EjbInterface
Um die Sicherheitsprüfungen zu bestehen, muss der Benutzername in ApplicationRealm
definiert sein.
Mein Kunde war in einem eigenständigen Maven-Projekt. Alles was ich tun musste, war diese Abhängigkeit hinzuzufügen:
%Vor%Ich bin zu dieser Lösung gekommen, indem ich mir das Beispiel ejb-remote angesehen habe .
Normalerweise lassen Sie in Java EE den Container die Suche durchführen, anstatt es selbst zu tun. Aus dem Java EE 6-Lernprogramm :
Um einen Verweis auf die Remote-Business-Schnittstelle eines zu erhalten Enterprise-Bean durch Dependency-Injektion, verwenden Sie die javax.ejb.EJB Anmerkung und geben Sie die Remote-Business-Schnittstelle der Enterprise-Bean an Name:
@EJB Example example;
Wenn es sich um eine JNDI-Suche handelt, lesen Sie dieses JBoss-Lernprogramm - es ist jedoch für Version 7 gedacht, aber vielleicht es ist hilfreich für Ihren Fall.
Tags und Links java jboss ejb wildfly-8 remote-server