2017-06-28 2 views
0

In meiner Anwendung muss ich den Modulnamen erhalten, der ein EJB aufgerufen hat. Zum Beispiel habe ich Ejb_A, die Ejb_B, EJB_A gehört zu Modul A und EJB_B zu Modul B. Ich möchte in einiger Weise in Ejb_B erhalten, dass der Anrufer A. Ich googelte, aber ich habe nicht viel mehr nützliche Informationen gefunden.Rufen Sie das EJB-Aufrufmodul auf

Ich benutze Jboss eap 7, j2ee7.

+0

Da Sie auf Jboss sind/Wildfly, können Sie sehen, wie ich das hier behandelt: https://stackoverflow.com/questions/25247689/pass-default-application-context-to-remote-ejb-anonymously – maress

Antwort

0

Wenn der Anrufer remote ist, könnte das schwierig sein. Selbst wenn die beiden auf demselben App-Server bereitgestellt werden, wenn Sie sich StackTrace für den aktuellen Thread ansehen, können Sie nur soweit zurückgehen, als der aktuelle Arbeitsthread den eingehenden Anruf erhalten hat, und Sie werden es wahrscheinlich auch nicht tun kann weiter zurücktreten, um zu sehen, wer der Anrufer war.

Sie könnten es für Sie einfacher machen und einen Parameter übergeben, der ein eindeutiger Bezeichner ist String, der angibt, wer der Anrufer ist. Wenn es für Ihre App wichtig ist, diese Informationen zu kennen, würde ich mir etwas Ähnliches ansehen und es in Ihre API einbauen.

+0

Leider der Anrufer ist remote. Ich habe versucht, einen Interzeptor zu verwenden und einen Parameter im Sitzungskontext hinzuzufügen, aber er ist null, wenn er innerhalb des EJB gelesen wird. Ich kann der aufgerufenen Methode keinen Parameter hinzufügen, da dies eine Änderung der Methodensignatur bedeuten würde. Also muss ich es automatisch abrufen. –

+0

Da Sie auf jboss/wildfly sind, können Sie sehen, wie ich das hier gehandhabt habe: https://StackOverflow.com/Questions/25247689/pass-default-application-context-to-remote-ejb-anonymous – maress

+0

Ich habe dies versucht Lösung, aber der ejb selbst kann nicht auf die Parameter in den Kontextdaten zugreifen. Wenn ich in den ejb @Resource SessionContext aufnehmen und getContextData() aufrufen. Get ("myParameter") Ich bekomme null, während es in den beiden Interceptor verfügbar ist. –

Verwandte Themen