L’objectif de cet article est de créer rapidement un RESTful Web Service opérationnel permettant de manipuler les données d’une table stockée dans une base Oracle . Pour illustrer l’article, la table EMP (du fameux schéma SCOTT d’oracle) sera utilisée.
Environnement
- Windows 7
- NetBeans 8.0.2
- Oracle Database 11.2.0.2
Pré-requis
- Téléchargement du DDL de création de la table EMP ainsi que du jeux de données (disponible sur de nombreux sites)
- Création de la table dans un schéma de la base de données
Important
Il faut s’assurer que la table EMP possède une clef primaire. Sinon effectuer l’alter suivant : ALTER TABLE EMP ADD CONSTRAINT pk_emp PRIMARY KEY (EMPNO);
- Insertion du jeux de données
Création application
Première étape, créer l’application
- A partir de la barre de menu
- Cliquer sur File > New Project
- Dans la fenêtre choose Project, se positionner sur la catégorie Java Web, sélectionner « Webapplication » puis cliquer sur Next
- Dans la fenêtre Name and Location, saisir le nom du projet « demo-backend » puis cliquer sur Next
- Dans la fenêtre Server and Settings, s’assurer que le serveur est un Glassfish Server 4 et que la version Java EE est Java EE7 Web puis cliquer sur Next
- Dans la fenêtre Frameworks, cliquer sur Finish
Création entity Class
Deuxième étape, créer l’entité JPA à partir de la table EMP stockée dans la base de donnée Oracle. Au préalable, un package sera créé pour y stocker la Class.
Création package
- Saisir « com.model » dans le champ Package Name puis cliquer sur Finish
Création entité
- Dans la catégorie Persistence, sélectionner Entity Classes from Database
- Sélectionner New Data Source dans la liste déroulante
- Saisir le JNDI Name : demoBackendDS
- Sélectionner dans la liste déroulante Database Connection
- Soit une connexion existante
- Soit New Database Connection puis suivre l’assistant de création
- Sélectionner le driver Oracle Thin
- Cliquer sur Next
- Saisir les paramètres de connexion
- Saisir le nom de l’utilisateur Oracle ainsi que son mot de passe puis cliquer sur Ok
- Sélectionner la table EMP dans la partie Available Tables puis cliquer sur Next
- S’assurer que le package com.model est sélectionné
- Cliquer sur Finish
- La Class EMP doit apparaître dans le package com.model
Création RESTFul services
Troisième étape, la création du web service
- Dans la catégorie Web Services, sélectionner RESTful Web Services from Entity Classes
- Sélectionner com.model.Emp dans la partie Available Entity Classes puis cliquer sur Next
- Cliquer sur Finish
- Le web service EmpFacadeRest doit apparaître dans l’onglet RESTfull Web Services
- Dans la catégorie Web Services, sélectionner Cross-Origin Resource Sharing Filter
- Cliquer sur Finish
- Les Classes ci-dessous sont crées dans le package service
Création DataSource dans le serveur Glassfish intégré
- Télécharger le driver JDBC Oracle (par ex ojdbc7.jar)
- Copier le fichier dans C:\Program Files\glassfish-4.0\glassfish\domains\domain1\lib
- Lancer la console d’administration Weblogic ( http://localhost:4848/common/index.jsf) ou clic droit sur Glassfish Server 4 dans l’onglet Services puis View Domain Admin Console
- Dans JDBC > Pools de connexions JDBC, cliquer sur nouveau
- Saisir le nom du pool : demoBackendDS
- Sélectionner javax.sql.DataSource dans la liste déroulante Type de ressource
- Cliquer sur suivant
- Copier/coller « oracle.jdbc.pool.OracleDataSource » dans le champ Nom de classe de la source de données
- Cliquer sur Enregistrer
- Editer le pool demonBackendDS
- Cliquer sur l’onglet Autres propriétés
- Créer les 3 propriétés ci-dessus
- Cliquer sur enregistrer
- Cliquer sur l’onglet Général
- Cliquer sur le bouton Ping pour tester le pool de connexion
- Dans NetBeans, ouvrir le fichier persistence.xml
- Dans JDBC > Pools de connexions JDBC, cliquer sur nouveau
- Saisir dans nom JNDI : demoBackendDS (qui doit correspondre à la valeur de la balise <jta-data-source> du fichier persistence.xml (ouvert à l’étape précédente)
- Sélectionner le pool demoBackendDS dans la liste déroulante Nom du pool
- Cliquer sur Ok
Important : Après avoir créer le pool et la resource JDBC, il faut effectuer un refresh du serveur Glassfish dans NetBeans
- Cliquer sur l’onglet Services
- Cliquer sur Glassfish Server 4
- Déployer Resources > JDBC > Connection Pools
- Clic droit sur JConnection Pools puis Refresh
- Déployer Resources > JDBC > JDBC Resources
- Clic droit sur JDBC Resources puis Refresh
Tests webservice
Dernière partie, le test du Web Service. Pour cela, il est possible d’utiliser l’Embedded Webkit Browser de NetBeans.
- Clic droit sur le projet demo-backend puis Properties
- Cliquer sur Run
- Copier « webresources/com.model.emp/ » dans le champ Relative URL
- Sélectionner Embedded Webkit Browser dans la liste de valeur Browser
- Cliquer sur OK
- Dans la toolbar, cliquer sur Run
- La fenêtre suivante doit apparaître dans NetBeans