Cette règle détecte la présence des services Web JAX-RPC en fonction des critères suivants :
- La présence du fichier web-services.xml
- La présence du fichier weblogic-webservices.xml et
du fichier webservices.xml dans le même dossier
Solution manuelle
Pour générer des services web JAX-RPC basés sur WebLogic J2EE web service deployment descriptors, vous devez créer manuellement un script Ant à l'aide de tâches spécifiques IBM® Ant spécifiques. Le script doit être ajouté au dossier racine du projet si un fichier généré par IBM Ant n'existe pas déjà. Ces tâches gérer la génération des services web JAX-RPC à partir des descripteurs de déploiement.
Propriétés de la règle
Vous devez fournir les valeurs correctes pour les propriétés de la règle afin de garantir des résultats précis lors de l'analyse. Ces propriétés doivent être examinées et configurer de manière appropriée en fonction du contexte de votre application. Les propriétés pour cette règle sont les suivantes :
- Nom du script Ant généré :
Spécifie le nom du nouveau script Ant généré. Le nom du script doit être un nom de fichier valide. La valeur ne doit pas inclure de barres obliques avant ou arrière doit être un nom de fichier valide. La valeur ne doit pas inclure de barres obliques avant ou arrière. Le script se trouve dans le dossier racine du projet.
Valeur par défaut : build-ibm-ws.xml
- Nom du dossier de génération :
Spécifie le nom du dossier dans lequel les artefacts de génération résideront. La valeur ne doit pas inclure de barres obliques avant ou arrière. Le dossier de
génération est créé dans le dossier principal du projet.
Valeur par défaut : ibm-ws-gen
Chemin d'accès aux classes du script Ant
Le chemin d'accès aux classes Ant est déterminé à partir du projet Eclipse.
Il est important de vérifier que tous les éléments nécessaires pour la
compilation sont présents dans le chemin d'accès aux classes Eclipse.
Services JAX-RPC définis dans le fichier web-services.xml
En fonction des informations et du type de services définis dans le fichier
web-services.xml, un script Ant, et éventuellement du code Java supplémentaire représentant l'interface de noeud final du service Web, sont générés pour reproduire le service JAX-RPC.
- Composants pris en charge
Seuls les composants Stateless Session enterprise beans (<stateless-ejb>) et Java (R) (<java-class>) peuvent être reconnus et convertis peuvent être reconnus et convertis.
- Composants EJB sans état :
Le fichier JAR Enterprise JavaBeans (TM) (EJB), tel que défini dans l'attribut path de l'élément <ejb-link>, doit exister dans le projet. Le correctif automatisé analyse le fichier JAR EJB et génère une nouvelle classe Service Endpoint Interface (SEI) basée sur la classe EJB remote.
Les interfaces SEI diffèrent des interfaces distantes EJB en ce que que la classe doit étendre les interfaces
java.rmi.Remote
, et chaque méthode doit lever l'exception,
java.rmi.RemoteException
.
Le correctif automatisé utilisera Java reflection sur l'interface distante de l'EJB pour générer le nouveau SEI .
Par conséquent, assurez-vous que le chemin de classe de votre projet Eclipse inclut toutes les classes, tous les fichiers JAR et tous les répertoires nécessaires pour charger avec succès la classe distante EJB.
Le SEI doit être généré dans le dossier, sei, à l'intérieur du dossier de génération, tel que fourni par l'utilisateur dans la règle le dossier de génération, tel que fourni par l'utilisateur dans la règle properties. Le package SEI correspond au package EJB remote interface et le nom du SEI sera le même que celui de l'interface distante EJB avec le mot SEI ajouté. De plus, le nouveau dossier SEI est ajouté au chemin de la classe du projet.
- Composants de la classe Java :
Comme pour les composants EJB, le correctif automatisé génère une interface de point final de service à partir de la classe définie dans l'attribut <class-name> à partir de la classe Java définie dans l'attribut <nom de la classe>.
- Cibles Ant générées :
Le script Ant généré contient des cibles pour générer le fichier WSDL et le service JAX-RPC sur la base du nouveau SEI qui sera créé qui sera créée.
La cible de génération du WSDL portera le nom, genWSDL_ssss, où ssss est le nom du service JAX-RPC fourni dans le champ d'attribut fourni dans le champ d'attribut name de l'élément <web-service> de l'élément <web-service>.
Les cibles de génération de services portent le nom, genService_pppp, où pppp est le nom du composant à partir de l'attribut name de l'élément <stateless-ejb> ou <java-class>.
La correction automatisée n'utilisera pas les informations fournies dans d'autres éléments, tels que <handlers-chain>, <types>, <opérations>, <sécurité>, etc.
Services JAX-RPC définis dans le fichier webservices.xml
Un script Ant est généré sur la base des données et du type de services définis dans le fichier webservices.xml afin de reproduire le service JAX-RPC.
- Cibles Ant générées :
Le script Ant généré contient des cibles pour générer le fichier WSDL et le service JAX-RPC.
La cible de génération WSDL n'est générée que si vous ne pouvez pas localiser le fichier WSDL tel qu'il est défini dans l'élément, <wsdl-file>.
S'il est créé, la cible de génération du WSDL porte le nom suivant le nom genWSDL_ssss, où ssss est le nom du service tel que défini dans l'élément dans l'élément <webservice-description-name>.
Les cibles de génération de service porteront le nom, genService_pppp, où pppp est le nom du port tel que défini par l'élément <port-component-name> l'élément <port-component-name>.
Tâches Ant pour IBM WebSphere Application Server
WebSphere Application Server inclut des tâches Ant, comme java2wsdl et wsdl2java, qui permettent de générer les artefacts requis pour les services JAX-RPC. Le script Ant généré utilise ces tâches pour créer le
service.
Pour plus d'informations sur ces tâches, consultez la
documentation WebSphere Application Server.
Exécution du script Ant
Une fois que vous avez produit le script Ant, visualisez-le et ajoutez des personnalisations supplémentaires si nécessaire.
Pour des personnalisations supplémentaires des tâches IBM Ant, consultez la documentation WebSphere Application Server.
Vous devez exécuter le script à l'aide des outils Ant qui
sont inclus dans WebSphere Application Server. Le script IBM Ant
peut être exécuté à partir de :
- WAS_HOME\bin\ws_ant.bat sur Windows(R)
- WAS_HOME\bin\ws_ant.sh sur UNIX(R)
Exemple : c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Une fois que les cibles Ant sont exécutées, les artefacts produits résident dans le dossier de génération dans le dossier de génération. L'utilisateur peut alors inspecter le code et les descripteurs de code et les descripteurs de déploiement générés, puis ajouter ces artefacts à leurs modules.
Recommandation : Envisager la migration vers JAX-WS
Si vous apportez déjà des modifications à vos services web JAX-RPC dans le cadre de vos efforts de migration ou de modernisation, nous vous recommandons vivement d'évaluer le passage à JAX-WS ( Java API for XML Web Services).
JAX-WS est le successeur de JAX-RPC et offre plusieurs avantages :
- Conception moderne de l'API avec une meilleure prise en charge des annotations et une intégration avec Java EE
- Amélioration de l'interopérabilité avec d'autres cadres et normes de services web
- Meilleur outillage et meilleure assistance dans les serveurs d'application et les IDE modernes
- Viabilité à long terme, JAX-RPC étant considéré comme une technologie ancienne
La migration vers JAX-WS permet de réduire la dette technique future et d'aligner votre application sur les normes actuelles des services web ( Java ).
Pour obtenir des conseils sur la migration de JAX-RPC vers JAX-WS, reportez-vous à la section Scénarios de migration des services web : JAX-RPC vers JAX-WS et JAXB.