Wie man eine property-Datei zur Verfügung EJB in WebSphere Application Server 8
Erstellte ich ein JAX-WS-Web-Service und EJB-Skelett aus einer WSDL-Datei, indem Sie die folgenden eine Anleitung in der Rational Application Developer for WebSphere 8.0.4 helfen.
Es erzeugt ein EJB-Projekt enthalten meine EJB-code.
Es entstand eine EJBEar Projekt zur Erstellung einer ear-Datei.
Es entstand ein RouterWebProject erstellen einer war-Datei.
Den RouterWebProject bietet servlet Informationen, so dass ich posten kann, eine HTTP-soap-request an das servlet weitergeleitet werden sollen, auf meine web-service-code in der EJB.
Den EJB-service-code ruft eine Klasse in der gleichen EJB-Projekt, das mit einem ResourceBundle Lesen einer property-Datei mit dem Namen AppSDKExamples.Eigenschaften
static {
ResourceBundle props = ResourceBundle.getBundle("AppSDKExamples", Locale.getDefault());
brokerPartnerId = props.getString("broker.partner.id");
buyPartnerId = props.getString("svc.dealer.partner.id");
sellPartnerId = props.getString("platform.partner.id");
sellPartnerId2 = props.getString("platform.partner.id2");
accountNumber = props.getString("account.number");
}
Ich habe versucht, indem Sie die AppSDKExamples.Eigenschaften Datei überall ich denken kann, aber ich bekomme immer eine java.util.MissingResourceException.
Wie kann ich diese property-Datei zur Verfügung, um die EJB-code?
Derzeit die EJB Ohr sieht wie folgt aus:
- lib/AppSDKExamples.Eigenschaften
- lib/AppSDKExamples_en_US.Eigenschaften
- lib/anderen jar-Dateien
- META-INF/MANIFEST.MF (dieser enthält nicht ein Klasse Weg, den ich nicht herausfinden können, wie Sie es.)
- EJB.jar
- Webprojekt.Krieg
Den EJB.jar sieht wie folgt aus:
- com/activant/web/services/Beispiele/class-Dateien, suchen Sie die property-Datei
- com/activant/web/services/iaptest/class-Dateien für den web-service
- META-INF/MANIFEST.MF (dies hat den AppSDKExamples.Eigenschaften und AppSDKExamples_en_US.properties in classpath)
- AppSDKExamples.Eigenschaften
- AppSDKExamples_en_US.Eigenschaften
War-Datei sieht wie folgt aus:
- lib enthält die gleichen jar-Dateien als EJB.jar Dateien hat
- META-INF (Class-Path: /lib EJB.jar)
- WEB-INF/classes-dieser Ordner enthält sowohl die propertie-Dateien.
- WEB-INF/lib dieser Ordner enthält die properties-Dateien.
- WEB-INF/ibm-web-bnd.xml
- WEB-INF/ibm-web-ext.xml
- WEB-INF/web.xml
Jede Hilfe auf diesem würde sehr geschätzt werden.
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die properties-Dateien werden im Stammverzeichnis des EJB -, dann die EJB-Klasse sollten in der Lage sein, die Eigenschaften zu finden-Dateien. Wenn Sie mit Java 2-Sicherheit aktiviert ist, müssen Sie Sie gewähren FilePermission; siehe PROFILE_HOME/config/cells/CELL/nodes/NODE/app.Politik für ${webComponent} und ${ejbComponent}.
Platzieren einfach die properties-Dateien in-EAR/lib wird nicht funktionieren, weil das OHR/lib/- Verzeichnis nicht in der Umgebungsvariable classpath, nur die .jar-Dateien innerhalb von es sind auf dem classpath. Es könnte funktionieren, hinzufügen
Class-Path: lib/
zu der EJB-jar-MANIFEST.MF, aber die directory-Klasse-Pfade sind nicht verpflichtet, die von der Java ee-Spezifikation, also ich weiß nicht, ob Sie unterstützt werden von WebSphere Application Server.Verweisen auf die properties-Dateien direkt in das MANIFEST.MF Class-Path auch nicht funktioniert, da nur Gläser und Verzeichnisse werden unterstützt (siehe oben für Java ee VORBEHALT in Bezug auf Verzeichnisse).
Im Allgemeinen, ist es wahrscheinlich am besten, entfernen Sie die führenden Schrägstrich aus
/lib
. Es ist unklar, aus der Java ee-Plattform-Spezifikation ob es sich dabei um dielib
Verzeichnis, in das OHR oder ein Verzeichnis in der root des machine file system.