2016-11-30 4 views
1

Ich habe eine ear-Anwendung, die in WebSphere Liberty 8.5 bereitgestellt wird. Die Anwendung enthält ein EJB-Modul, in dem ich einige EJBs deklariert habe. Meine EJBs sind in der folgenden Art und Weise erklärt:So ändern Sie EJB-JNDI-Bindungen in WebSphere Liberty

public interface MyEjb... 

@Local 
public interface MyEjbLocal extends MyEjb... 

@Remote 
public interface MyEjbRemote extends MyEjb... 

@Stateless 
public class MyEjbBean implements MyEjbLocal, MyEjbRemote... 

Wenn Anwendung gestartet ich sehen kann, in WebSphere Liberty-log, dass diese EJB die folgenden JNDI Namen bekommt:

java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbLocal, 
java:global/my-ear-app-name/my-ejb-module-name/MyEjbBean!my.package.name.MyEjbRemote 

Ich brauche diese Namen zu ändern. Wenn ich es richtig verstehe, kann es in der Datei ibm-ejb-jar-bnd.xml getan werden. Ich habe eine ibm-ejb-jar-bnd.xml Datei im Verzeichnis META-INF meines EJB-Moduls jar Datei. Diese Datei enthält die folgende Konfiguration:

<session name="MyEjbBean" simple-binding-name="my/new/jndi/name"></session> 

jedoch diese Konfiguration hat keine Wirkung: wenn ich das Ohr Anwendung beginne ich immer noch die Standard-JNDI-Bindungen im Protokoll sehen.

Ich weiß, dass ibm-ejb-jar-bnd.xml korrekt von WebSphere Liberty abgeholt wird, weil ich bei der Angabe eines falschen Bean-Namens im Tag <session> in WebSphere log eine Warnung erhalte.

Wie kann ich EJB JNDI-Bindungen in WebSphere Liberty ändern?

+1

Diese Namen der Java EE-Spezifikation vorgeschrieben sind:

Es wird unter doc (Suche nach "simple-binding") fallen. Warum musst du sie ändern? Was versuchst du hier zu erreichen? –

+0

@Steve Die tatsächliche JNDI-Bindung sieht folgendermaßen aus: 'java: global/my-ohr-app-name-1.2.3/my-ejb-modulname-1.2.3/MyEjbBean! My.package.name.MyEjbLocal '. Sowohl der Anwendungsname als auch der EJB-Modulname enthalten die aktuelle Version. Die Bindung ändert sich also jedes Mal, wenn sich die Version ändert. – Alexey

+2

Versuchen Sie, den ' ...' in der application.xml und den ' ...' in den verschiedenen Deployment-Deskriptoren des Moduls (ejb-jar .xml und web.xml). Stellen Sie sicher, dass diese DDs Java EE 7-Versionen enthalten. –

Antwort

Verwandte Themen