Construire rapidement un RESTful Web Service opérationnel

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

Capture4

  • Saisir « com.model » dans le champ Package Name puis cliquer sur Finish
Création entité

Capture5

  • Dans la catégorie Persistence, sélectionner Entity Classes from Database

Capture6

  • 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

Capture7

  • Saisir le nom de l’utilisateur Oracle ainsi que son mot de passe puis cliquer sur Ok

Capture8

  • Sélectionner la table EMP dans la partie Available Tables puis cliquer sur Next

Capture9

  • S’assurer que le package com.model est sélectionné
  • Cliquer sur Finish
  • La Class EMP doit apparaître dans le package com.model

Capture10

Création RESTFul services

Troisième étape, la création du web service
Capture11

  • Dans la catégorie Web Services, sélectionner RESTful Web Services from Entity Classes

Capture12

  • Sélectionner com.model.Emp dans la partie Available Entity Classes puis cliquer sur Next

Capture13

  • Cliquer sur Finish
  • Le web service EmpFacadeRest doit apparaître dans l’onglet RESTfull Web Services

Capture14
Capture15

  • Dans la catégorie Web Services, sélectionner Cross-Origin Resource Sharing Filter

Capture16

  • Cliquer sur Finish
  • Les Classes ci-dessous sont crées dans le package service

Capture17

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

Capture19

  • Saisir le nom du pool : demoBackendDS
  • Sélectionner javax.sql.DataSource dans la liste déroulante Type de ressource
  • Cliquer sur suivant

Capture20

  • 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

Capture21

  • Créer les 3 propriétés ci-dessus
  • Cliquer sur enregistrer
  • Cliquer sur l’onglet Général

Capture22

  • Cliquer sur le bouton Ping pour tester le pool de connexion
  • Dans  NetBeans, ouvrir le fichier persistence.xml

Capture18

  • Dans JDBC > Pools de connexions JDBC, cliquer sur nouveau

Capture23

  • 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

Capture24

  • 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

Capture25
Le Web Service est opérationnel !