Table des matières:
- Avant de créer votre service Web, vous devez définir ce qu'il va faire. Cela vous permet de construire correctement l'interface à laquelle les autres applications doivent adhérer si elles veulent communiquer avec votre service Web.
- prennent la forme d'un code Java.Vous pouvez créer votre composant backend comme l'un des suivants:
- Vous devez respecter quelques règles lors de l'implémentation d'une opération de service Web à l'aide d'une classe Java:
Vidéo: Oracle WebLogic 10.3 JAX-WS WebService Creation Guide. 2024
Un service Web est une procédure distante accessible aux clients via TCP / IP, en utilisant généralement HTTP ou SMTP comme moyen de transport et XML pour l'encodage. Le service Web est décrit à l'aide de la notation XML standard appelée description de service. Un service Web remplit une seule tâche ou un ensemble de tâches. Tous les détails du service Web sont masqués pour l'utilisateur et le service est indépendant du matériel et du logiciel. Cela encourage les développeurs de logiciels à créer des applications composées de petits services individuels, qui peuvent ensuite être utilisés seuls ou en groupe pour exécuter des tâches encore plus complexes.
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 construire correctement l'interface à laquelle les autres applications doivent adhérer si elles veulent communiquer avec votre service Web.
Service synchrone
Service asynchrone
- A
- 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.
Les services Web synchrones sont plus utiles lorsque le programme client requiert immédiatement les données renvoyées par la requête. Un exemple de ce type de données est la cotation boursière actuelle pour une entreprise en particulier.
asynchrone
est asynchrone, de sorte que les messages peuvent être échangés librement entre le client et le service Web. Un message d'un côté n'oblige pas l'autre à envoyer un message correspondant. Lorsqu'un client envoie un message à un service Web asynchrone, le client n'attend pas un message du service Web. Le service Web peut renvoyer un message au client ultérieurement, mais rien ne lie intrinsèquement ce message au message d'origine envoyé par le client.Les services Web asynchrones sont un bon choix lorsque vous envoyez des informations qui ne nécessitent pas de réponse. Par exemple, vous pouvez envoyer un message à plusieurs de vos serveurs, en leur donnant un nouveau message d'accueil à afficher aux utilisateurs. Choix et construction d'un composant 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 le composant backend
prennent la forme d'un code Java.Vous pouvez créer votre composant backend comme l'un des suivants:
Une méthode d'une session sans état EJB Une méthode d'une classe Java Une méthode JMS consumer
- WebLogic peut rendre n'importe lequel de ces éléments disponible un service web. Cela permet de conditionner le code Java existant en tant que service Web. Si vous avez déjà créé des EJB de session sans état, vous pouvez les regrouper en tant que service Web. Ou si votre code existe dans les classes Java normales, vous pouvez fournir l'accès à votre classe en tant que service Web. Vous pouvez également utiliser la messagerie JMS en tant que service principal pour votre service Web.
- Création d'un service Web synchrone
- Dans cette section, vous allez créer un service Web synchrone à l'aide d'une classe Java standard, puis utiliser un EJB de session sans état. D'abord, vous devez écrire le composant backend. Ce sera une classe Java, un EJB sans état ou un consommateur de méthode JMS.
Utilisation d'un composant backend de classe Java
Vous devez respecter quelques règles lors de l'implémentation d'une opération de service Web à l'aide d'une classe Java:
Ne démarrez aucun thread. Cette règle s'applique à tout le code Java exécuté sur WebLogic Server.
Définir un constructeur par défaut sans argument.
Définissez comme publiques les méthodes de la classe Java qui seront exposées en tant qu'opérations de service Web.
- Vous devez écrire du code Java thread-safe car WebLogic Server ne gère qu'une seule instance d'une classe Java qui implémente une opération de service Web et chaque appel du service Web utilise cette même instance.
- Pour un exemple d'implémentation d'une opération de service Web WebLogic avec une classe Java, accédez au répertoire suivant:
- WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass
où
WL_HOME
fait référence au répertoire principal de votre installation de WebLogic Server. Sur un système Windows, ce répertoire est généralement C: beaweblogic81.
Le Listing 1 montre une classe Java que vous pouvez utiliser comme composant backend. Cette classe Java contient une méthode unique, appelée sampleMethod, qui accepte un entier et renvoie une chaîne. Listing 1: Composant Java Class Backend package com. nuls. ejb;
public class SampleBackendComponent
{
public Chaîne sampleMethod (int num)
{
switch (num)
{
case 1: renvoie "One";
cas 2: renvoie "Deux";
cas 3: retour "Trois";
case 4: renvoie "Four";
cas 5: retour "Cinq";
case 6: renvoie "Six";
case 7: renvoie "Seven";
case 8: retour "Huit";
case 9: renvoie "Neuf";
case 10: renvoie "Ten";
par défaut: retourne "Some Number";
}
}
}
Utilisation d'une session sans état Composant dorsal EJB
Vous pouvez également choisir de créer votre composant backend en tant qu'EJB de session sans état. Écrire du code Java pour une session sans état EJB pour un service Web n'est pas différent de l'écriture d'un EJB autonome.
Dans les services Web. Descripteur de déploiement xml, vous pouvez spécifier qu'une opération de service Web est à sens unique, ce qui signifie que l'application cliente qui appelle le service Web n'attend pas de 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 renvoie void.
Lorsque vous choisissez entre l'utilisation d'un composant EJB ou d'un composant backend de classe Java, tenez compte des autres manières dont votre composant backend sera utilisé. Si votre composant backend est généralement accessible en tant qu'EJB, créez-le en tant que EJB. Cela vous permet d'utiliser le même code pour votre EJB et votre service Web.
Des ressources beaucoup plus importantes sont nécessaires pour appeler un service Web que d'appeler un EJB. Pour cette raison, il est courant de créer tous vos composants backend en tant que EJB, puis d'autoriser les applications externes à accéder à vos composants backend en tant que services Web. Vos propres applications locales, qui s'exécutent sur le même réseau que votre serveur WebLogic, peuvent utiliser la méthode d'appel EJB plus rapide.
Le Listing 2 montre le fichier du bean qui implémente le composant backend EJB. Le composant backend EJB est presque le même que le composant backend de classe Java. La principale différence est le code supplémentaire utilisé pour soutenir l'EJB.
Listing 2: Composant EJB Backend
package com. nuls. ejb;
importer javax. ejb. *;
importer java. rmi. *;
importer javax. balançoire. *;
classe publique SampleBean implémente SessionBean
{
private SessionContext stx;
// Méthodes obligatoires, non utilisées par ce type de bean
public void ejbCreate () {}
public void ejbRemove () {}
public void ejbActivate () {}
public void ejbPassivate () {}
// setter pour le domaine public SessionContext
void setSessionContext (SessionContext ctx)
{
ctx = this. stx;
}
// l'exemple de méthode
public Chaîne sampleMethod (int num)
renvoie RemoteException
{
switch (num)
{
case 1: return " Un";
cas 2: renvoie "Deux";
cas 3: retour "Trois";
case 4: renvoie "Four";
cas 5: retour "Cinq";
case 6: renvoie "Six";
case 7: renvoie "Seven";
case 8: retour "Huit";
case 9: renvoie "Neuf";
case 10: renvoie "Ten";
par défaut: retourne "Some Number";
}
}
}
Vous devez spécifier que le bean est un EJB sans état dans l'ejb-jar. fichier XML, qui est montré dans l'extrait 3. Vous pouvez utiliser plusieurs noeuds et attributs.
Listing 3: ejb-jar. Fichier XML pour un composant backend
' // java. Soleil. com / dtd / ejb-jar_2_0. dtd '>
SampleObject
com. nuls. ejb. SampleHome
com. nuls. ejb. Échantillon
com. nuls. ejb. SampleBean
Stateless
Conteneur