2016-07-28 22 views

Antwort

0

Die Clients Ihres EJB-Dienstes sind möglicherweise fast überall zu finden. Clients können andere EJB-Dienste oder CDI-Beans in derselben Anwendung oder in anderen Anwendungen auf demselben Anwendungsserver oder sogar einige einfache Java SE-Anwendungen auf einer anderen Maschine und/oder JVM sein. Der Client ist einfach das "Modul", das den EJB-Dienst verwendet.

Mit @Local/@Remote geben Sie die Business-Schnittstelle Ihrer Session-Bean an. Insbesondere müssen Sie eine Business-Schnittstelle mit @Remote angeben, wenn Sie den EJB-Service von einem externen Client wie der eigenständigen Java SE-Anwendung auf einer anderen JVM verwenden möchten.

+0

Unterschiedliche JVM bedeutet unterschiedliche Anwendungsserver? und was meinst du mit anderen Anwendungen auf demselben Anwendungsserver. Können Sie mir bitte sagen, welche anderen Anwendungen für ein Beispiel vorhanden sind. –

+0

Wissen Sie, was die JVM ist? (https://en.wikipedia.org/wiki/Java_virtual_machine) .. und ein Java Application Server kann mehrere Anwendungen hosten. Sie können EJB-Dienste über eine Anwendung in anderen Anwendungen verwenden, die auf Ihrem Anwendungsserver gehostet werden. – stg

0

Wenn Sie eine Serverinstanz starten, wird der vollständige Server in derselben JVM ausgeführt, enthält jedoch möglicherweise mehrere verschiedene Anwendungen. So unterschiedliche Server oder unterschiedliche JVM bedeuten das Gleiche.

Ein bisschen kompliziert ist, wenn Sie auf WildFly-Domain-Modus aussehen. Hier starten Sie eine Instanz, aber diese Instanz ist der Contoller und startet möglicherweise 1 ... n Instanzen von Servern.

Wenn Sie @Local-Schnittstellen verwenden, müssen in jedem Fall der Client und der Server in der gleichen Instanz implementiert werden (es können jedoch verschiedene Anwendungen sein).

Wenn Sie @Remote verwenden, kann es dieselbe oder eine andere Instanz sein und es hängt von der Konfiguration ab, ob Sie für die Parameter "Aufruf durch Wert" oder "Aufruf durch Referenz" haben. Der Container oder Ihre Anwendung muss für den Aufruf konfiguriert worden sein, z. B. durch Angabe des fremden Hosts und des Ports für die Verbindung.