Mittwoch, 9. Juni 2010

Tutorial 5: Webservice im Oracle Enterprise Repository hinterlegen

Als einfaches Szenario soll ein Webservice (z.B. jener aus Tutorial 4) im Oracle Enterprise Repository abgelegt werden. Danach kann z.B. eine SOA-Anwendung aus dem JDeveloper darauf zugreifen.

Harvester vorbereiten

Um den Webservice mit allen Artefakten nicht manuell im Repository einzutragen, soll der mitgelieferte Harvester genutzt werden. Hierfür sind ein paar Vorbereitungen zu treffen, die aber alle so auch dokumentiert sind.
Zunächst müssen für den Harvester einige Artefakte importiert werden, die sich im Harvester-Solution-Pack befinden unter ORACLE_HOME>/repository111/core/tools/solutions /11.1.1.2.0-OER-Harvester-Solution-Pack.zip

  Dazu wird der Import / Export Client genutzt, der sich im OER unter Admin befindet.

Die oben angegebene Datei wird ausgewählt und importiert.


Als nächstes ist der eigentliche Harvester zu entpacken wie in der Dokumentation beschrieben. Die Datei befindet sich unter /repository111/core/tools/solutions/11.1.1.2.0-OER-Harvester.zip, ich habe sie z.B. entpackt nach /repository111/harvester.

Das Harvesting
Grundsätzlich können dem Harvester alle Parameter auf der Kommandozeile oder in einer Konfigurations-Datei übergeben werden. Eine Beispieldatei names HarvesterSettings.xml wird bereits mitgeliefert.
Hier der relevante Ausschnitt aus meiner HarvesterSettings.xml, im wesentlichen werden dort die Zugangsdaten für das Repository und den Admin-Server des WLS, der den Service beherbergt hinterlegt.

Die Passwörter müssen verschlüsselt abgelegt werden. Entweder man schreibt die Passwörter zunächst im Klartext in die Datei und verschlüsselt diese nachträglich mit dem ebenfalls mitgelieferten encrypt.bat. 

Oder man nutzt eine online-Anwendung, die mit dem OER mitgeliefert wird unter http://localhost:7101/oer/diag/encryptstrings.jsp.

Den richtigen Anwendungs-Namen für den zu harvestenden Webservice erhält man aus der WLS Administration Console unter Deployments, dieser muss genau so angegeben werden weil der Harvester sonst ins Leere läuft.

Ist alles richtig konfiguriert, lässt sich der Harvester starten über z.B. harvest -settings HarvesterSettings3.xml und die Ausgabe sollte ähnlich wie oben aussehen.


Überprüfen des Webservices im Oracle Enterprise Repository
Von der Haupseite des OER macht man am besten eine Suche nach Assets vom Status 'Unregistered'.


Danach sollten rechts die gesammelten Artefakte zu unserem Service auftauchen. Generiert wurden neben dem eigentlichen Service noch die Endpoint-, Interface-, WSDL- und XSD-Artefakte.

Im Navigator lassen sich die Abhängigkeiten anzeigen (der linke Button über der Beschreibung in der unteren Hälfte).


Nutzen des Services im JDeveloper
Um das Enterprise Repository aus dem JDeveloper nutzen zu können, muss zunächst die entsprechende Erweiterung im JDeveloper installiert sein. Sofern dies noch nicht erfolgt ist, kann diese über Help|Check for Updates installiert werden.

Mit der passenden Erweiterung taucht unter IDE Connections jetzt auch 'Oracle Enterprise Repository' auf, über einen Rechtsklick lässt sich hier eine neue Verbindung anlegen und testen.


Als Test lässt sich z.B. eine SOA-Anwendung mit einem BPEL Prozess anlegen.


Diese bekommt gleich einen BPEL Prozess


welcher vom JDeveloper automatisch geöffnet wird.


Bevor nun auf das Repository zugegriffen werden kann, muss dieses noch auf Applikations-Ebene bekannt gemacht werden.


Hierzu werden die Application Properties geöffnet


und das vorher angelegte Repository der Anwendung zugeordnet.

Hierzu wird im Composite, nicht im BPEL-Prozess, ein Web Service rechts in die External References gezogen.


Die WSDL URL Suche wird geöffnet

Umschalten auf Resource Palette


Im Enterprise Repository findet sich dann der eben eingetragene Service.


Die WSDL URL wurde entsprechend übernommen.


Damit steht der Webservice jetzt dem Prozess zur Verfügung, und kann genau so genutzt werden wie ein Manuell eingetragener Prozess.