|
|
Vous allez créer pour commencer un package PL/SQL Employee, qui contient une
fonction getByEmployeeName. Cette fonction prend comme paramètre en entrée une
forme de recherche; par exemple 'SC%' et envoi en retour un tableau contenant
l'ensemble des employés correspondant à ce critère. Ce package utilise le schéma
exemple SCOTT/TIGER dans lequel il sera déployé. C'est ce package que
l'on va déployer sous forme de service web. Pour cela :
Dans JDeveloper 9i, procédez comme suit :
- Créez un workspace "webservice".
- Dans ce workspace, créez un projet "ws-employee". Editez les propriétés de ce
projet et dans les propriétés J2EE de l'application, tapez "ws-employee" dans les
propriétés "J2EE web application name" et "J2EE web context root".
- Dans ce projet, créez un fichier .sql "scott-update.sql". Copiez le contenu
du fichier joint dans ce fichier.
- Dans JDeveloper, créez une nouvelle connexion de base de données en indiquant
les informations relative à votre base de données et sur le schéma SCOTT/TIGER.
- Vous pouvez utiliser directement le script .sql en cliquant avec le bouton droit
sur le fichier scott-update.sql de votre projet, en sélectionnant le menu
"run in SQL*plus | <db_name>" et en indiquant le fichier sqlplus de
<DB_HOME>/bin
Dans la base de données, vous créez les structures qui suivent :
- un type EMPTYPE qui contient le matricule et le nom de l'employé
- un type EMPTYPE_T qui est un table d'employés
- un package EMPLOYEE et sa spécification contient la fonction
getEmployeeByName décrite ci-dessus
Limites
JDeveloper ne permet pas de créer automatiquement des services web :
- Sur des fonctions ou procédures qui contiennent des paramètres "OUT" ou "IN OUT"
- Sur des fonctions ou procédures qui retournent des types qui ne sont pas des types
de base de données, comme des type déclarés dans les spécifications de package PL/SQL
Dans ces 2 cas, il faudra créer les wrappers Java sur les procédures PL/SQL manuellement.
|
|