Débuter avec java-ee

Qu’est-ce que JavaEE ?

Java EE signifie Java Enterprise Edition. Java EE étend Java SE (qui signifie Java Standard Edition). Java EE est un ensemble de technologies et de spécifications associées orientées vers le développement d’applications d’entreprise à grande échelle. Java EE est développé dans un processus piloté par la communauté. Jusqu’à présent, les versions suivantes de Java EE ont été publiées :

  • J2EE 1.2 (12 décembre 1999)
  • J2EE 1.3 (24 septembre 2001)
  • J2EE 1.4 (11 novembre 2003)
  • Java EE 5 (11 mai 2006)
  • Java EE 6 (10 décembre 2009)
  • Java EE 7 (5 avril 2013)

Et Java EE 8 devrait sortir au premier semestre 2017.

Un concept clé de Java EE est que chaque version de Java EE est composée d’un ensemble de technologies spécifiques. Ces technologies adressent des JSR (Java Specification Requests) spécifiques. Pour qu’un programmeur puisse utiliser ces technologies, il doit télécharger une implémentation des spécifications de la technologie Java EE. La communauté Java fournit une implémentation de référence pour chaque technologie, mais d’autres technologies compatibles Java EE sont développées et peuvent également être utilisées. La communauté fournit un ensemble de tests, à savoir le Java Compatibility Kit (JCK) qui peut être utilisé par les développeurs d’une implémentation JSR pour vérifier si elle est conforme ou non avec la JSR. Le tableau suivant donne un aperçu des technologies qui composent Java EE 7 et la JSR associée qui définissent les spécifications.

Technologie Java EE 7 RSC
Plate-forme Java, Enterprise Edition 7 (Java EE 7) JSR 342
API Java pour WebSocket RSC 356
API Java pour le traitement JSON RSC 353
Servlet Java 3.1 JSR 340
JavaServer Faces 2.2 RSC 344
Langage d’expression 3.0 RSC 341
JavaServer Pages 2.3 RSC 245
Bibliothèque de balises standard pour les pages JavaServer (JSTL) 1.2 RSC 52
Applications par lots pour la plate-forme Java RSC 352
Utilitaires de concurrence pour Java EE 1.0 RSC 236
Contextes et injection de dépendances pour Java 1.1 RSC 346
Injection de dépendances pour Java 1.0 JSR 330
Validation du haricot 1.1 RSC 349
Entreprise JavaBeans 3.2 RSC 345
Interceptors 1.2 (version de maintenance) RSC 318
Architecture de connecteur Java EE 1.7 RSC 322
Java Persistance 2.1 RSC 338
Annotations communes pour la plate-forme Java 1.2 JSR 250
API de service de messagerie Java 2.0 RSC 343
API de transaction Java (JTA) 1.2 JSR 907
JavaMail 1.5 JSR 919
API Java pour les services Web RESTful (JAX-RS) 2.0 RSC 339
Mise en œuvre des services Web d’entreprise 1.3 RSC 109
API Java pour les services Web basés sur XML (JAX-WS) 2.2 RSC 224
Métadonnées des services Web pour la plate-forme Java RSC 181
API Java pour RPC basé sur XML (JAX-RPC) 1.1 (facultatif) RSC 101
API Java pour la messagerie XML 1.3 RSC 67
API Java pour les registres XML (JAXR) 1.0 RSC 93
Interface du fournisseur de services d’authentification Java pour les conteneurs 1.1 RSC 196
Contrat d’autorisation Java pour conteneurs 1.5 RSC 115
Déploiement d’applications Java EE 1.2 (facultatif) RSC 88
Gestion J2EE 1.1 RSC 77
Prise en charge du débogage pour d’autres langues 1.0 RSC 45
Architecture Java pour la liaison XML (JAXB) 2.2 RSC 222
API Java pour le traitement XML (JAXP) 1.3 RSC 206
Connectivité de base de données Java 4.0 RSC 221
Extensions de gestion Java (JMX) 2.0 RSC 003
Cadre d’activation JavaBeans (JAF) 1.1 JSR 925
API de diffusion en continu pour XML (StAX) 1.0 RSC 173

Installation

Tout d’abord, vous ne pouvez pas “installer” Java EE. Java EE se compose d’un certain nombre de spécifications. Vous pouvez cependant installer des implémentations de ces spécifications.

Selon vos besoins, de nombreuses possibilités s’offrent à vous. Pour installer la plupart (ou la totalité) des spécifications, vous pouvez choisir un serveur d’applications compatible Java EE 7. Selon vos besoins, vous pouvez choisir entre des serveurs d’application qui implémentent le profil Web ou des serveurs d’application qui implémentent le profil complet. Pour une liste des serveurs d’applications compatibles Java EE7, voir Compatibilité Java EE.

Installation du serveur Payara complet

Conditions préalables

  • JDK 1.7 ou ultérieur installé. Vous pouvez trouver les JDK Oracle [ici.][1]

Pas

  • Téléchargez [Payara Server Full][2].
  • Décompressez le serveur Payara à un endroit sur votre ordinateur. Nous utiliserons C:\payara41 comme INSTALL_DIR pour les utilisateurs Windows et /payara41 pour les utilisateurs Linux/Mac.

Démarrer / arrêter Payara à partir de l’invite de commande

  • Windows : Ouvrez une invite de commande et exécutez la commande suivante pour démarrer/arrêter Payara :

    "C:\payara41\bin\asadmin" start-domain

    "C:\payara41\bin\asadmin" stop-domain

  • Linux/Max : Ouvrez un terminal et exécutez la commande suivante pour démarrer/arrêter Payara :

    /payara41/bin/asadmin start-domain

    /payara41/bin/asadmin stop-domain

Démarrer Payara depuis Netbeans

  • Ajouter le serveur Payara à Netbeans (voir chapitre précédent)
  • Allez dans l’onglet ‘Services’ (Windows -> Services).
  • Développez l’élément ‘Serveurs’.
  • Faites un clic droit sur le serveur Payara et sélectionnez ‘Démarrer’.
  • (Facultatif) Faites un clic droit sur le serveur Payara et sélectionnez “Afficher la console d’administration du domaine” pour accéder à la console.

Pour vérifier que vous exécutez le serveur d’applications, ouvrez un navigateur et accédez à http://localhost:4848 pour voir la console du serveur Payara.

Voila ! Il est maintenant temps de créer votre première application à l’aide de JavaEE et de la déployer sur votre serveur !

[1] : http://www.oracle.com/technetwork/es/java/javase/downloads/index.html [2] : http://www.payara.fish/downloads

Construire ma première application JavaEE (Hello World)

Comprenons quelque chose. JavaEE se compose d’un certain nombre de spécifications. Lorsque vous installez un serveur d’application (Payara par exemple), vous installez toutes les spécifications en une seule fois. Par exemple, il existe une spécification pour un ORM appelé JPA (Java Persistence API), une spécification pour créer des applications Web basées sur des composants appelée JSF (Java Server Faces), une spécification pour créer des services Web REST et clients appelés JAX-RS.

Donc, comme vous pouvez le deviner, il n’y a pas qu’une seule façon de créer une simple application Hello World en JavaEE.

Deuxièmement, la spécification JavaEE a une structure spécifique de dossiers qui ressemble à ceci (simplifié) :

/projectname/src/main/java
/projectname/src/main/resources
/projectname/src/main/resources/META-INF
/projectname/src/main/webapp
/projectname/src/main/webapp/WEB-INF

Dans /projectname/src/main/java nous mettons toutes les classes java dont nous avons besoin.

À l’intérieur de /projectname/src/main/webapp nous mettons des fichiers html, des fichiers css, des fichiers javascript, etc.

À l’intérieur de /projectname/src/main/webapp/WEB-INF se trouvent des fichiers de configuration facultatifs, tels que web.xml et beans.xml.

Pour plus de simplicité, nous utiliserons l’IDE NetBeans (c’est gratuit) pour construire notre première application JavaEE. Vous pouvez le trouver [ici.][1] Choisissez la version JavaEE et installez-la.

Créer un nouveau projet

  • Ouvrir l’IDE NetBeans
  • Allez dans Fichier > Nouveau Projet > Maven > Application Web et cliquez sur Suivant.
  • Remplacez nom du projet par HelloJavaEE, puis cliquez sur Suivant et sur Terminer.

Nettoyer et compiler le projet

  • Allez dans Exécuter > Nettoyer et construire le projet (HelloJavaEE).

Déployez le fichier WAR

  • Dans un navigateur, accédez à http://localhost:4848 (suivez les instructions pour [installer le serveur payara][2]).
  • Allez dans Applications > Cliquez sur Déployer, cliquez sur Sélectionner un fichier et choisissez votre fichier war (HelloJavaEE-1.0-SNAPSHOT.war) sous ../NetBeansProjects/HelloJavaEE/target.

Déployez le fichier WAR directement depuis Netbeans

  • Installez Payara (voir chapitre suivant).
  • Dans Netbeans, allez dans l’onglet ‘Services’ (Fenêtre->Services si vous ne le voyez pas).
  • Faites un clic droit sur Serveurs et sélectionnez ‘Ajouter un serveur…’
  • Sélectionnez ‘GlassFish Server’, donnez-lui un nom et cliquez sur suivant.
  • Pointez sur votre installation Payara locale, sélectionnez « Domaine local » et cliquez sur Suivant.
  • Laissez les paramètres d’emplacement du domaine tels quels (Domaine : domaine1, Hôte : localhost, Port DAS : 4848, Port HTTP : 8080).
  • Allez dans l’onglet ‘Projets’ (Windows -> Projets).
  • Faites un clic droit sur votre projet et sélectionnez ‘Propriétés’.
  • Dans le volet de gauche, allez dans “Exécuter” et sélectionnez le serveur que vous venez d’ajouter.
  • (Facultatif) Modifiez le chemin du contexte. Si vous définissez le chemin de contexte sur ‘/MyFirstApplication’, l’URL par défaut sera ‘http://localhost:8080/MyFirstApplication’.

Voir les résultats

  • Dans un navigateur, accédez à http://localhost:8080/HelloJavaEE-1.0-SNAPSHOT

Voila ! C’est votre première application utilisant la technologie JavaEE. Vous devriez maintenant commencer à créer d’autres applications “Hello World” en utilisant différentes spécifications comme JPA, EJB, JAX-RS, JavaBatch, etc…

[1] : https://netbeans.org/downloads/ [2] : https://www.wikiod.com/fr/java-ee/debuter-avec-java-ee#Installation