Erstellen von Web-Services in WebLogic

EIN Internetservice

ist ein Remote-Verfahren für die Kunden über TCP / IP, in der Regel HTTP oder SMTP als Transport und XML für die Codierung zur Verfügung. Der Web-Service wird unter Verwendung von Standard-XML-Notation beschrieben ein genannt Leistungsbeschreibung. Ein Web-Service erfüllt eine einzelne Aufgabe oder eine Reihe von Aufgaben.

Alle Details des Web-Services werden von dem Benutzer verborgen, und der Service ist sowohl Hardware als auch Software unabhängig. Dies fördert die Software-Entwickler Anwendungen erstellen, bestehend aus kleinen, einzelnen Dienste, die dann allein verwendet werden kann oder in Gruppen noch komplexere Aufgaben zu erfüllen.

Sie können einen Web-Service auf zwei Arten erstellen: manuell, durch die Erstellung von Java-Quellcode und Konfigurationsdateien oder ein GUI-System namens WebLogic Workshop mit. In diesem Artikel erstellen Sie einen Web-Dienst manuell.

Definieren eines Web-Service

Bevor Sie Ihren Web-Service erstellen, sollten Sie definieren, was es tun wird. So können Sie richtig die Schnittstelle zu konstruieren, die andere Anwendungen einhalten müssen, wenn sie wollen mit Ihrem Web-Service zu kommunizieren.

Die grundlegendste Design-Entscheidung ist, welche der zwei allgemeine Arten von Web-Services, die Sie erstellen:

  • Synchron-Service
  • Asynchronous Service

EIN Synchron-Web-Service, die Standardeinstellung ist, beginnt, wenn der Web-Service eine Nachricht empfängt. Dieser Web-Service reagiert sofort.

Synchron Webdienste sind am nützlichsten, wenn das Client-Programm die Daten aus der Anforderung unverzüglich zurück erfordert. Ein Beispiel für diese Art von Daten ist der aktuelle Aktienkurs für ein bestimmtes Unternehmen.

Ein asynchron Web-Service ist asynchron, also Nachrichten können frei zwischen dem Client und Web-Service ausgetauscht werden. Eine Nachricht von einer Seite nicht verpflichtet, die andere eine entsprechende Nachricht zu senden. Wenn ein Client eine Nachricht an einen asynchronen Web-Dienst sendet, muss der Client nicht auf eine Nachricht warten wieder aus dem Web-Service. Der Web-Service kann eine Nachricht zurück an den Client zu einem späteren Zeitpunkt zu senden, aber nichts bindet von Natur aus diese Nachricht an die ursprüngliche Nachricht, die den Client gesendet.

Asynchrone Web Services sind eine gute Wahl, wenn Sie Informationen sind zu senden, die keine Antwort erfordert. Zum Beispiel können Sie eine Nachricht an mehrere Ihrer Server zu einem schicken, ihnen eine neue Ansage geben den Benutzern angezeigt werden soll.

Die Auswahl und der Aufbau einer Back-End-Komponente

Der Zweck Ihrer Web-Service ist Remote-Clients zu ermöglichen, Dienste zuzugreifen, die Sie zur Verfügung stellen. Diese Dienste, die so genannte Backend-Komponente, in Form von Java-Code. Sie können Ihre Backend-Komponente als eine der folgenden erstellen:

  • Verfahren zur Herstellung einer Stateless Session EJB
  • Verfahren zur Herstellung einer Java-Klasse
  • Ein JMS-Methode Verbraucher

WebLogic kann als Web-Service zur Verfügung eines dieser Elemente zu machen. Dies macht es praktisch bestehenden Java-Code als Web-Service zu verpacken. Wenn Sie bereits Stateless Session EJBs erstellt haben, können Sie sie als Web-Service-Paket. Oder wenn Sie den Code in regelmäßigen Java-Klassen vorhanden ist, können Sie den Zugriff auf Ihre Klasse als Web-Service zu bieten. Sie können auch JMS-Messaging als Backend-Service für Ihre Web-Service nutzen.

Der Aufbau einer synchronen Web-Service

In diesem Abschnitt bauen Sie eine synchrone Web-Service eine reguläre Java-Klasse und dann eine Stateless Session EJB verwenden. Zunächst müssen Sie die Backend-Komponente schreiben. Dies wird entweder eine Java-Klasse, ein stateless EJB oder JMS-Methode Verbraucher sein.

Das Arbeiten mit einer Java-Klasse-Backend-Komponente

Sie müssen ein paar Regeln befolgen, wenn eine Web-Service-Betrieb über eine Java-Klasse Implementierung:

  • Verwenden Sie keine Threads beginnen. Diese Regel gilt für alle Java-Code, der auf WebLogic Server ausgeführt wird.
  • Definieren Sie eine Standard-Konstruktor ohne Argumente.
  • Definieren Sie die Methoden der Java-Klasse als öffentlich, die als Web-Service-Operationen ausgesetzt werden.

Sie müssen Thread-sichere Java-Code schreiben, weil WebLogic Server nur eine einzige Instanz einer Java-Klasse unterhält, die einen Web-Service-Operation implementiert, und jeder Aufruf des Web-Service verwendet die gleiche Instanz.

Ein Beispiel eines WebLogic Web-Service-Betrieb mit einer Java-Klasse zu implementieren, gehen Sie zu folgendem Verzeichnis:

WL_HOME Samples server src examples webservices Grund Javaclass

woher WL_HOME bezieht sich auf das Hauptverzeichnis Ihres WebLogic Server-Installation. Auf einem Windows-System ist dieses Verzeichnis in der Regel C: bea weblogic81.

Listing 1 zeigt eine Java-Klasse, die Sie als Backend-Komponente verwenden könnte. Diese Java-Klasse enthält eine einzige Methode namens sampleMethod, die einen int akzeptiert und gibt einen String zurück.

Listing 1: Java-Klasse Backend-Komponente

Paket com.dummies.ejb-
public class SampleBackendComponent
{
public String sampleMethod (int num)
{
Schalter (num)
{
Fall 1: return "One" -
Fall 2: return "Two" -
Fall 3: return "Three" -
Fall 4: return "Vier" -
Fall 5: return "Five" -
Fall 6: return "Six" -
7 Fall: return "Seven" -
Fall 8: return "Acht" -
Fall 9: return "Nine" -
10 Fall: return "Ten" -
default: return "Einige Number" -
}
}
}

Das Arbeiten mit einem Stateless-Session-EJB-Backend-Komponente

Sie können auch wählen, um Ihre Backend-Komponente als Stateless Session EJB bauen. Das Schreiben von Java-Code für eine Stateless Session EJB für einen Web-Service ist nicht anders als ein eigenständiges EJB zu schreiben.

Auf der Web-services.xml Deployment Descriptor können Sie festlegen, dass ein Web-Service-Betrieb ein Weg ist, was bedeutet, dass die Client-Anwendung, die den Web-Service aufruft wartet nicht auf eine Antwort. Wenn Sie den Java-Code für die EJB-Methode schreiben, die diese Art von Operation implementiert, müssen Sie angeben, dass es void zurückgibt.

Bei der Wahl zwischen einer EJB oder eine Java-Klasse-Backend-Komponente verwenden, sollten Sie die anderen Möglichkeiten, in denen Sie Ihre Backend-Komponente verwendet wird. Wenn Ihr wird Backend-Komponente häufig als EJB zugegriffen werden, bauen sie als EJB. Auf diese Weise können Sie den gleichen Code für Ihre EJB und Web-Service zu nutzen.

Beträchtlich sind mehr Ressourcen erforderlich, um einen Web-Service zu rufen, als ein EJB zu nennen. Aus diesem Grund ist es üblich, alle Komponenten Backend als EJBs zu erstellen und dann externe Anwendungen erlauben, Ihre Back-End-Komponenten als Web-Services zugreifen. Ihre eigene lokale Anwendungen, die auf dem gleichen Netzwerk wie der WebLogic-Server ausgeführt werden, können die schnellere EJB rufenden Methode verwenden.

Listing 2 zeigt die Bean-Datei, die die EJB-Backend-Komponente implementiert. Die EJB-Backend-Komponente ist fast die gleiche wie die Java-Klasse-Backend-Komponente. Der wichtigste Unterschied ist der Zusatzcode verwendet, um die EJB zu unterstützen.

Listing 2: EJB-Backend-Komponente

Paket com.dummies.ejb-
importieren javax.ejb *. -
Import java.rmi *. -
importieren javax.swing *. -
public class SampleBean implementiert SessionBean
{
Private Session stx-
// Erforderliche Methoden, nicht durch diese Art der Bohne verwendet
public void ejbCreate () {}
public void ejbRemove () {}
public void ejbActivate () {}
public void ejbPassivate () {}
// Weisend für die Session
public void setSessionContext (Session CTX)
{
ctx = this.stx-
}
// Die Probenverfahren
public String sampleMethod (int num)
wirft Remote
{
Schalter (num)
{
Fall 1: return "One" -
Fall 2: return "Two" -
Fall 3: return "Three" -
Fall 4: return "Vier" -
Fall 5: return "Five" -
Fall 6: return "Six" -
7 Fall: return "Seven" -
Fall 8: return "Acht" -
Fall 9: return "Nine" -
10 Fall: return "Ten" -
default: return "Einige Number" -
}
}

}

Sie müssen angeben, dass die Bohne ein stateless EJB in der Datei ejb-jar.xml ist, die in Listing 3 dargestellt wird Sie viele Knoten und Attribute verwenden können.

Listing 3: ejb-jar.xml-Datei für eine Back-End-Komponente

'Http://java.sun.com/dtd/ejb-jar_2_0.dtd>



Sample
com.dummies.ejb.SampleHome
com.dummies.ejb.Sample
com.dummies.ejb.SampleBean
staatenlos
Container


Menü