Bewährte Verfahren: Module und Konfektionierung für Geschäftsservices

Beim Entwickeln von Geschäftsintegrationsanwendungen müssen Sie möglicherweise mit Ressourcen wie JSP-Dateien, JAR-Dateien, Webprojekten, Java-Projekten und J2EE-Projekten arbeiten. Die Informationen in diesem Abschnitt sollen Ihnen helfen, Ihre Projekte und Ressourcen so zu konfigurieren, dass sie erfolgreich erstellt und in WebSphere Process Server implementiert werden können.

Mit eigenständigen Referenzen arbeitende JSP-Dateien

JSP-Dateien (JavaServer Pages) rufen die SCA-Komponenten (Service Component Architecture) mit Hilfe eigenständiger Referenzen in der Modul-Assembly auf. Die JSP-Datei muss in derselben EAR-Datei wie die Modul-Assembly implementiert sein. Nachfolgend sind die Schritte aufgelistet, die zum Hinzufügen der JSP-Datei zum Modul erforderlich sind:
  1. Erstellen Sie ein Webprojekt.
  2. Erstellen Sie die JSP-Datei im Webprojekt. Wenn Sie den Code importieren, importieren Sie ihn in dieses Webprojekt. Siehe JSP-Beispielcode.
  3. Öffnen Sie das Modul (mit den eigenständigen Referenzen) mit dem Editor für Abhängigkeiten. Fügen Sie eine Abhängigkeit vom Webprojekt als J2EE-Projekt hinzu. Stellen Sie sicher, dass die Option Mit Modul implementieren ausgewählt ist, damit das Webprojekt der EAR-Datei hinzugefügt wird.
Anmerkung: Kopieren Sie die Datei sca.references nicht in eine andere EAR-Datei. Die Datei ist außerhalb des Moduls, zu der sie gehört, nicht funktionsfähig.

Wenn es sich bei dem Webprojekt um eine andere EAR-Datei handelt, befindet sich die JSP-Datei in einem anderen Modul und es sind Importe und Exporte erforderlich, damit sie mit Services in einem anderen Modul arbeiten kann.

JSP-Beispielcode

Nachfolgend ist ein JSP-Beispielcode dargestellt, bei dem die eigenständigen Referenzen in der Modul-Assembly verwendet werden:

com.ibm.websphere.sca.Service bankService = (com.ibm.websphere.sca.Service)com.ibm.websphere.sca.ServiceManager.INSTANCE.locateService("BankServicePartner");
=> Der Referenzname "BankServicePartner" stammt aus der Datei sca.references im Modul (z. B. <reference name="BankServicePartner">...). Diese Datei ist nach dem Erstellen einer eigenständigen Referenz im Editor für Verbindungen vorhanden.
com.ibm.websphere.sca.scdl.OperationType operationType = bankService.getReference().getOperationType("openAccount");
=> Der Operationstyp wird verwendet, um die DataObject-Typen abzurufen, die an die Operation zum Aufrufen übergeben werden müssen.
com.ibm.websphere.bo.BOFactory factory = (com.ibm.websphere.bo.BOFactory) new com.ibm.websphere.sca.ServiceManager().locateService("com/ibm/websphere/bo/BOFactory");
=> Standardmöglichkeit zum Erhalten einer Factory zur Erstellung von Geschäftsobjekten.
commonj.sdo.DataObject input = factory.createByType(operationType.getInputType());
=> Erstellt die richtige Art von Datenobjekt, die die Operation als Eingabe erwartet.
commonj.sdo.DataObject customer = input;
=> Setzen Sie momentan voraus, dass keine eingeschlossene Eingabe vorliegt.
if(operationType.isWrapperType(operationType.getInputType()))
{
=> Zum Aufrufen der Referenz muss in diesem Fall der in der WSDL-Datei der Schnittstelle definierte Wrapper übergeben werden.  Das eingeschlossene Datenobjekt wird also erstellt und auf den Wrapper gesetzt (der Name der Eigenschaft stammt vom Inline-Schema in der WSDL-Datei).
customer = factory.createByType(operationType.getInputType().getProperty("customer").getType());
input.set("customer", customer);
}
customer.setString("firstName", "Bob");
customer.setString("lastName", "Smith");
customer.setString("address", "7 Holly Drive");
customer.setBoolean("isGold", true);
customer.setInt("birthYear", 1976);
=> Die letzten 5 Zeilen definieren die Attribute für 'Customer'.
commonj.sdo.DataObject output = (commonj.sdo.DataObject)bankService.invoke("openAccount",input);
commonj.sdo.DataObject account = null;
if(operationType.isWrapperType(operationType.getOutputType()))
account = output.getDataObject("account");
else
	account = output;
=> Die zurückgegebene Ausgabe kann eingeschlossen sein.

Mit Java-Code arbeiten

Empfohlene Methode: Wenn Sie Java-Anwendungen entwickeln oder JAR-Dateien importieren müssen, die in einem Geschäftsintegrationsmodul verwendet werden sollen, erstellen Sie ein Java-Projekt für den Code und fügen dem Modul, das den Java-Code verwenden soll, eine Abhängigkeit von dem Java-Projekt hinzu.

Die Java-Eigenschaften der Geschäftsintegrationsbibliothek oder des Geschäftsintegrationsmoduls dürfen nicht geändert werden, da dies zu Problemen bei der Generierung von Implementierungscode führen kann. Daher empfiehlt es sich nicht, komplexe Java-Anwendungen zu entwickeln oder JAR-Dateien für deren Verwendung in eine Bibliothek oder ein Modul zu importieren. Darüber hinaus sollten beim Generieren von Java-Implementierungen für Komponenten in einem Assembly-Diagramm die generierten Java-Implementierungen als Ausgangspunkt zum Aufrufen anderer Java-Klassen verwendet werden.

Beachten Sie, dass in der Sicht 'Geschäftsintegration' nur die Java-Implementierungen und -Schnittstellen angezeigt werden, die in einem Assembly-Diagramm verwendet werden. Sie werden unterhalb des Moduls aufgelistet, das sie verwendet. Wenn Sie mit Java-Projekten arbeiten müssen, können Sie dafür in die Java-Perspektive wechseln.

In die Java-Perspektive wechseln

Führen Sie die folgenden Schritte aus, um die Java-Perspektive zu öffnen:

  1. Wählen Sie im Menü Fenster > Perspektive öffnen > Andere... aus.
  2. Wählen Sie Java aus und klicken Sie auf OK.

In der Java-Perspektive werden die beiden geöffneten Perspektiven oben rechts im Workbench-Fenster angezeigt. Sie können zur Perspektive 'Geschäftsintegration' wechseln, indem Sie auf die Schaltfläche Perspektive 'Geschäftsintegration' klicken. In der Abbildung unten ist dies dargestellt:

Rechte obere Ecke des Workbench-Fensters mit den beiden Schaltflächen für Perspektiven

Es folgen einige Anweisungen für die Java-Entwicklung in einem Java-Projekt:
  • Erstellen Sie ein Java-Projekt.
  • Führen Sie Ihre Java-Entwicklung im Java-Projekt aus. Wenn Sie eine JAR-Datei importieren müssen, importieren Sie die Datei in das Java-Projekt. Importieren Sie keine JAR-Dateien in das Modul oder die Bibliothek. Die JAR-Datei wird nicht der EAR-Datei hinzugefügt.
  • Öffnen Sie mit dem Editor für Abhängigkeiten das Modul, das den Java-Code verwendet. Fügen Sie das Java-Projekt als Abhängigkeit hinzu und stellen Sie sicher, dass das Markierungsfeld Mit Modul implementieren ausgewählt ist. Der Editor für Abhängigkeiten fügt das Java-Projekt dem Klassenpfad des Moduls hinzu. Die JAR-Datei wird mit dem Modul implementiert.

Geschäftsobjekte und Schnittstellen für Importe und Exporte

Empfohlene Methode: Wenn Sie Importe und Exporte in Assembly-Diagrammen verwenden möchten, ist es sinnvoll, die Geschäftsobjekte und Schnittstellen, die von den Importen und Exporten verwendet werden, in eine Bibliothek zu stellen, damit sie gemeinsam genutzt werden können. Fügen Sie anschließend allen Modulen, die diese gemeinsamen Ressourcen verwenden, eine Abhängigkeit von der Bibliothek hinzu. Vermeiden Sie das Kopieren derselben Geschäftsobjekte und Schnittstellen in unterschiedliche Module zu deren Verwendung.

Gemeinsam genutzte Bibliotheksressourcen

Wenn gemeinsam genutzte Ressourcen nach der Implementierung in der Bibliothek geändert werden, müssen die Module, die diese Ressourcen verwenden, aktualisiert werden. Stellen Sie sich als Beispiel zwei Module vor, die einige Ressourcen in einer Bibliothek gemeinsam nutzen. Die Anwendungen werden implementiert. Eines der Module muss aktualisiert werden, was zu Änderungen einiger gemeinsam genutzter Ressourcen in der Bibliothek führt. In diesem Fall muss das zweite Modul ebenfalls aktualisiert werden, damit die Änderungen an den gemeinsam genutzten Ressourcen reflektiert werden.

WSDL-Dateien müssen sich in einem Modul oder einer Bibliothek befinden

Wenn Sie eine WSDL-Datei in einem Modul verwenden müssen, kopieren Sie sie in das Modul. Optional können Sie die WSDL-Datei in eine Bibliothek kopieren und im Modul eine Abhängigkeit von der Bibliothek definieren, damit Sie die Ressourcen der Bibliothek nutzen können. Wenn Sie versuchen, eine WSDL-Datei von einem anderen Projekttyp, z. B. einem Webprojekt, durch Ziehen zu übergeben, werden Sie anhand einer Fehlernachricht dazu aufgefordert, die WSDL-Datei in das Modul oder die Bibliothek zu kopieren.

J2EE-Modulnamen

Beim Geschäftsintegrationsmodul handelt es sich um ein einfaches Projekt, das eine J2EE-EAR-Datei generiert, die aus J2EE-Projekten besteht. Wenn das Modul MyApp genannt wird, werden J2EE-Projekte mit diesen Namen generiert und Sie dürfen diese nicht für eigene J2EE-Projekte verwenden:
  • MyAppApp
  • MyAppEJB
  • MyAppEJBClient
  • MyAppWeb

Abhängigkeiten ohne Editor ändern

Vermeiden Sie es, Modulabhängigkeiten außerhalb des Editors für Abhängigkeiten zu ändern.

Wenn Sie eine Abhängigkeit von einer Bibliothek, einem Java-Projekt oder einem J2EE-Projekt hinzufügen, werden an den Eigenschaften des Moduls Änderungen vorgenommen. Die Eigenschaften des Moduls werden wie folgt geändert:

  • Dem Java-Erstellungspfad wird die Bibliothek oder das Projekt hinzugefügt.
  • Die Projektverweise bestimmen, welche J2EE-Projekte oder Dienstprogramm-JARs in die entstehende EAR-Datei für das Modul aufgenommen werden sollen. Wenn die Bibliothek oder das Projekt im Editor für Abhängigkeiten auch für die Implementierung mit dem Modul ausgewählt ist, ist in den Projektverweisen die Bibliothek oder das Projekt ausgewählt, sodass sie bzw. es der EAR-Datei zur Implementierung hinzugefügt wird.

Verwenden Sie den Editor für Abhängigkeiten zum Verwalten von Projektabhängigkeiten für Ihre Module und Bibliotheken, anstatt ihre Eigenschaften zu bearbeiten. Die Eigenschaften von Modulen und Bibliotheken enthalten wichtige Java-Voraussetzungen. Aus diesem Grund sollten Sie die Java-Eigenschaften nicht ändern, um beispielsweise ihre Quell- und Ausgabeordner zu ändern.

Zugehörige Konzepte
Module und Bibliotheken
Module und Bibliotheken - Abhängigkeiten
Geschäftsintegration - Leistungsmerkmale und Aufgabenbereiche
Geschäftsintegration - Cheat-Sheets
Geschäftsservices: Komponenten und Module
Mediationsservices: Komponenten und Mediationsmodule
Zugehörige Tasks
Modul für Geschäftsservices erstellen
Mediationsmodul erstellen
Standardnamensbereiche ändern
Leistungsmerkmale von Tools aktivieren
Modulen und Bibliotheken Abhängigkeiten hinzufügen
Bibliothek erstellen
Exporte erstellen
Zugehörige Verweise
WSDL- und Java-Schnittstellen und -Verweise

Zugehörige Informationen

Tutorial: Mit Modulen und Bibliotheken arbeiten

Feedback
(C) Copyright IBM Corporation 2005, 2006. Alle Rechte vorbehalten.