Création de services Web dans weblogic

UN service Web

Sommaire

est une procédure à distance disponible pour les clients via le protocole TCP / IP, typiquement en utilisant HTTP ou SMTP que le transport et XML pour l'encodage. Le service Web est décrit en utilisant la notation standard XML appelé Description du service. Un service Web répond à une seule tâche ou un ensemble de tâches.

Tous les détails du service Web sont cachées à l'utilisateur, et le service est à la fois matériel et logiciel indépendant. Cela encourage les développeurs de logiciels de créer des applications composées de petits services individuels, qui peuvent ensuite être utilisés seuls ou en groupes pour effectuer des tâches encore plus complexes.

Vous pouvez créer un service Web de deux façons: manuellement, à travers la création de la source Java et des fichiers de configuration, ou en utilisant un système d'interface graphique appelée WebLogic Workshop. Dans cet article, vous créez un service Web manuellement.

Définition d'un service web

Avant de créer votre service Web, vous devez définir ce qu'il va faire. Cela vous permet de bien construire l'interface que d'autres applications doivent respecter si elles veulent communiquer avec votre service Web.

La plupart des décisions de conception de base est celui des deux types généraux de services Web que vous allez créer:

  • Service synchrone
  • Service asynchrone

UN service Web synchrone, qui est la valeur par défaut, commence lorsque le service Web reçoit un message. Ce service Web répond immédiatement.

Services Web synchrones sont les plus utiles lorsque le programme client exige les données renvoyées par la demande immédiatement. Un exemple de ce type de données est le courant de bourse pour une entreprise en particulier.

Un asynchrone service web est asynchrone, afin que les messages peuvent être échangés librement entre le client et le service Web. Un message d'un côté ne contraint pas les autres pour envoyer un message correspondant. Lorsqu'un client envoie un message à un service Web asynchrone, le client ne pas attendre un message en retour du service web. Le service web peut envoyer un message au client à un moment plus tard, mais rien ne lie intrinsèquement ce message au message original que le client a envoyé.

Les services Web asynchrones sont un bon choix lorsque vous envoyez des informations qui ne nécessite pas une réponse. Par exemple, vous voudrez peut-être à un envoyer un message à plusieurs de vos serveurs, leur donnant un nouveau message d'accueil à afficher aux utilisateurs.

Le choix et la construction d'une composante de backend

Le but de votre service Web est de permettre aux clients distants d'accéder aux services que vous fournissez. Ces services, appelés les composante de backend, prendre la forme de code Java. Vous pouvez construire votre composant backend comme l'un des éléments suivants:

  • Une méthode d'une session EJB apatride
  • Une méthode d'une classe Java
  • Procédé consommateur JMS

WebLogic peut faire aucune de ces articles disponibles comme un service Web. Ceci rend facile de conditionner le code Java existant en tant que service Web. Si vous avez déjà créé des EJB session sans état, vous pouvez les regrouper en tant que service Web. Ou si votre code existe dans les classes régulières Java, vous pouvez donner accès à votre classe en tant que service Web. Vous pouvez également utiliser la messagerie JMS en tant que service d'arrière-plan pour votre service Web.

Construire un service Web synchrone

Dans cette section, vous construisez un service Web synchrone utilisant une classe Java classique, puis en utilisant une session EJB apatride. Tout d'abord, vous devez écrire le composant de backend. Ce sera soit une classe Java, EJB un apatride, ou une méthode JMS consommateur.

Travailler avec un composant Java classe backend

Vous devez suivre quelques règles lors de la mise en œuvre d'une opération de service Web en utilisant une classe Java:

  • Ne pas démarrer les discussions. Cette règle vaut pour tout le code Java qui fonctionne sur WebLogic Server.
  • Définir un constructeur par défaut sans argument.
  • Définir comme publiques les méthodes de la classe Java qui sera exposée que les opérations de service Web.

Vous devez écrire du code Java thread-safe parce WebLogic Server gère une seule instance d'une classe Java qui implémente une opération de service Web, et chaque invocation du service Web utilise cette même instance.

Pour un exemple de la mise en œuvre d'une opération de service Web WebLogic avec une classe Java, allez dans le répertoire suivant:

WL_HOME samples Server src exemples webservices base JavaClass

WL_HOME fait référence au répertoire principal de votre installation WebLogic Server. Sur un système Windows, ce répertoire est généralement C: bea weblogic81.

Listing 1 montre une classe Java que vous pouvez utiliser comme un composant d'arrière-plan. Cette classe Java contient une seule méthode, nommée sampleMethod, qui accepte un int et renvoie une chaîne.

Liste 1: Java Component classe Backend

forfait com.dummies.ejb-
SampleBackendComponent public class
{
public String sampleMethod (int num)
{
interrupteur (num)
{
Cas 1: return "One" -
Cas 2: revenir "Two" -
case 3: retourner "Trois" -
Cas 4: retourner "Quatre" -
Cas 5: retourner «Cinq» -
Cas 6: revenir "Six" -
Cas 7: retourner "Seven" -
8 cas: return "Huit" -
9 cas: retourner "Nine" -
Cas 10: return "Ten" -
défaut: return "Certains Nombre" -
}
}
}

Travailler avec un composant EJB backend session stateless


Vous pouvez également choisir de construire votre composant backend comme une session EJB apatride. Ecriture de code Java pour un EJB session sans état pour un service Web est pas différent que d'écrire un EJB autonome.

Dans le web-services.xml descripteur de déploiement, vous pouvez spécifier que une opération de service Web est un moyen, ce qui signifie que l'application client qui appelle le service Web ne pas attendre une réponse. Lorsque vous écrivez le code Java pour la méthode EJB qui implémente ce type d'opération, vous devez spécifier qu'il retourne void.

Lors du choix entre l'utilisation d'un EJB ou un composant de backend de classe Java, examiner les autres moyens par lesquels votre composant backend sera utilisé. Si votre composant backend sera généralement accessible comme un EJB, le construire comme un EJB. Cela vous permet d'utiliser le même code pour votre EJB et services Web.

Beaucoup plus de ressources sont nécessaires pour appeler un service web que d'appeler un EJB. Pour cette raison, il est fréquent de créer tous les composants de votre backend EJB et ensuite permettre aux applications externes d'accéder à vos composants backend tant que services Web. Vos propres applications locales, qui sont exécutés sur le même réseau que votre serveur WebLogic, peuvent utiliser la méthode d'appel d'EJB plus rapide.

Listing 2 montre le fichier de haricot qui implémente le composant EJB backend. Le composant EJB backend est presque la même que la composante de backend de classe Java. La principale différence est le code supplémentaire utilisé pour soutenir l'EJB.

Liste 2: Composant Backend EJB

forfait com.dummies.ejb-
importer javax.ejb *. -
importation java.rmi *. -
importer javax.swing *. -
SampleBean public class implémente SessionBean
{
STX privée SessionContext
// Méthodes obligatoires, ne sont pas utilisés par ce type de haricot
public void ejbCreate () {}
ejbRemove public void () {}
ejbActivate public void () {}
ejbPassivate public void () {}
// Setter pour SessionContext
setSessionContext public void (SessionContext CTX)
{
ctx = this.stx-
}
// La méthode de l'échantillon
public String sampleMethod (int num)
throws RemoteException
{
interrupteur (num)
{
Cas 1: return "One" -
Cas 2: revenir "Two" -
case 3: retourner "Trois" -
Cas 4: retourner "Quatre" -
Cas 5: retourner «Cinq» -
Cas 6: revenir "Six" -
Cas 7: retourner "Seven" -
8 cas: return "Huit" -
9 cas: retourner "Nine" -
Cas 10: return "Ten" -
défaut: return "Certains Nombre" -
}
}

}

Vous devez spécifier que le bean est un EJB sans état dans le fichier ejb-jar.xml, qui est présenté dans le Listing 3. Vous pouvez utiliser de nombreux nœuds et attributs.

Liste 3: fichier ejb-jar.xml pour un composant Backend

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



SampleObject
com.dummies.ejb.SampleHome
com.dummies.ejb.Sample
com.dummies.ejb.SampleBean
Apatride
Récipient



» » » » Création de services Web dans weblogic