Entwickeln Sie Servicekomponenten, um wiederverwendbare Logik für mehrere
Anwendungen auf Ihrem Server bereitzustellen.
Vorbereitungen
In dieser Task wird vorausgesetzt, dass Sie bereits Verarbeitungsabläufe
entwickelt und identifiziert haben, die für mehrere Module hilfreich sind.
Anlass und Zeitpunkt für die Ausführung dieser Task
Eine Servicekomponente kann von mehreren Modulen verwendet werden. Durch Exportieren
wird eine Servicekomponente für andere Module verfügbar gemacht, die über eine Schnittstelle
auf die Servicekomponente verweisen. In dieser Task wird beschrieben, wie eine Servicekomponente erstellt wird, die auch von anderen
Modulen verwendet werden kann.
Anmerkung: Eine einzige Servicekomponente kann mehrere Schnittstellen enthalten.
Erforderliche Schritte für diese Task
- Definieren Sie das Datenobjekt zum Verschieben von Daten zwischen dem aufrufenden
Element und der Servicekomponente.
Das Datenobjekt und der dazugehörige Typ sind
Teil der Schnittstelle zwischen den aufrufenden Elementen und der Servicekomponente.
- Definieren Sie eine Schnittstelle, über die aufrufende Elemente auf die
Servicekomponente verweisen können.
Diese Schnittstellendefinition benennt
die Servicekomponente und listet alle in der Servicekomponente verfügbaren Methoden auf.
- Entwickeln Sie die Klasse, die die Implementierung definiert.
- Wenn es um eine Komponente mit langer Laufzeit (asynchrone Komponente)
geht, fahren Sie mit dem Schritt 4 fort.
- Wenn es nicht um eine Komponente mit langer Laufzeit (asynchrone Komponente) geht,
fahren Sie mit dem Schritt 5 fort.
- Entwickeln Sie eine asynchrone Implementierung.
Wichtig: In einer asynchronen Komponente
darf das Merkmal joinsTransaction nicht auf true gesetzt sein.
- Definieren Sie die Schnittstelle, die die synchrone Servicekomponente repräsentiert.
- Definieren Sie die Implementierung der Servicekomponente.
- Fahren Sie mit Schritt 6 fort.
- Entwickeln Sie eine synchrone Implementierung.
- Definieren Sie die Schnittstelle, die die synchrone Servicekomponente repräsentiert.
- Definieren Sie die Implementierung der Servicekomponente.
- Speichern Sie die Komponentenschnittstellen und -implementierungen
in Dateien mit der Erweiterung .java.
- Packen Sie das Servicemodul und die erforderlichen
Ressourcen in eine JAR-Datei.
In dem Artikel "Modul auf einem Produktionsserver implementieren" in
diesem Information Center finden Sie eine Beschreibung der Schritte
7 bis
9.
- Führen Sie den Befehl serviceDeploy aus, um eine
installierbare EAR-Datei mit der Anwendung zu erstellen.
- Installieren Sie die Anwendung auf dem Serverknoten.
- Optional: Konfigurieren Sie die Verbindungen zwischen den aufrufenden
Elementen und der entsprechenden Servicekomponente, wenn eine Servicekomponente in einem anderen Servicemodul
aufgerufen wird.
Im Abschnitt über "Verwaltung" in diesem Information Center wird das
Konfigurieren der Verbindungen beschrieben.
Beispiele für das Entwickeln von Komponenten
Dieses Beispiel zeigt
eine synchrone Servicekomponente, die eine einzige Methode (CustomerInfo) implementiert. Im ersten
Abschnitt wird die Schnittstelle zu der Servicekomponente definiert, die eine Methode
getCustomerInfo implementiert.
public interface CustomerInfo {
public Customer getCustomerInfo(String customerID);
}
Der folgende Codeabschnitt implementiert die Servicekomponente.
public class CustomerInfoImpl implements CustomerInfo {
public Customer getCustomerInfo(String customerID) {
Customer cust = new Customer();
cust.setCustNo(customerID);
cust.setFirstName("Victor");
cust.setLastName("Hugo");
cust.setSymbol("IBM");
cust.setNumShares(100);
cust.setPostalCode(10589);
cust.setErrorMsg("");
return cust;
}
}
In diesem Beispiel wird eine asynchrone Servicekomponente entwickelt. Im ersten
Codeabschnitt wird die Schnittstelle zu der Servicekomponente definiert, die eine Methode
getQuote implementiert.
public interface StockQuote {
public float getQuote(String symbol);
}
Der folgende Abschnitt ist die Implementierung der StockQuote
zugeordneten Klasse.
public class StockQuoteImpl implements StockQuote {
public float getQuote(String symbol) {
return 100.0f;
}
}
Der nächste Codeabschnitt implementiert die asynchrone
Schnittstelle StockQuoteAsync.
public interface StockQuoteAsync {
// Verzögerte Antwort
public Ticket getQuoteAsync(String symbol);
public float getQuoteResponse(Ticket ticket, long timeout);
// Rückruf
public Ticket getQuoteAsync(String symbol, StockQuoteCallback callback);
}
Dieser Abschnitt ist die Schnittstelle StockQuoteCallback, die
die Methode onGetQuoteResponse definiert.
public interface StockQuoteCallback {
public void onGetQuoteResponse(Ticket ticket, float quote);
}
Nächster Schritt
Rufen Sie den Service auf.