JavaRush /Blog Java /Random-FR /Mise en place d'un environnement local pour le développem...
zor07
Niveau 31
Санкт-Петербург

Mise en place d'un environnement local pour le développement Java EE

Publié dans le groupe Random-FR
Dans cet article, nous allons mettre en place un environnement de travail pour exécuter des applications Java EE. Permettez-moi de vous rappeler : dans le document précédent, nous avons couvert les bases de Java EE . Mise en place d'un environnement local pour le développement Java EE - 1Par environnement, nous entendons un ensemble de différents composants logiciels :
  • Kit de développement logiciel Java EE ;
  • Serveur d'applications Java EE GlassFish ;
  • Configuration d'IntelliJ IDEA.
Les principaux objectifs de ce matériel :
  1. Montrez comment vous pouvez préparer un environnement de travail pour travailler avec des applications Java EE.
  2. Montrez comment vous pouvez déployer et exécuter des applications Java EE à partir d'IntelliJ IDEA sur le serveur GlassFish.
Voici ce que nous allons faire pour cela :
  1. Téléchargez et installez le SDK Java EE 7.
  2. Levons le serveur d'applications Java EE GlassFish.
  3. Apprenons comment démarrer et arrêter le serveur via la ligne de commande.
  4. Configurons IntelliJ IDEA pour déployer des applications sur ce serveur.
  5. Déployons et exécutons l'application de démonstration qui, avec le serveur d'applications GlassFish, est incluse dans le SDK Java EE 7.
Cet article sera utile aux développeurs Java novices qui se familiarisent avec le développement d'entreprise en Java. Considérez cela comme une petite préparation du terrain pour une pratique ultérieure. Vous comprendrez le contenu si vous connaissez les compétences de base en ligne de commande Windows (PowerShell). Versions des composants logiciels utilisés dans cet article :
  • VerreFish 4.0 ;
  • IntelliJ IDEA 2019.3.1 (ultime);
  • SDK Java EE 7.

Installation du SDK Java EE

Condition importante. Avant d'installer le SDK Java EE, vous devez vous assurer que le SDK Java SE est préinstallé.
  1. Tout d’abord, nous devons télécharger le SDK. Pour cela, vous pouvez taper dans un moteur de recherche : « Java EE SDK 7 », ou vous rendre directement sur la page de téléchargement du sdk depuis le site d'Oracle.

  2. Dans la liste des SDK fournis, vous devez sélectionner celui qui convient à votre plateforme. L'article décrit l'installation de la distribution : « java_ee_sdk-7-jdk7-windows-x64-ml.exe »

  3. Exécutez le fichier d'installation. Lors du démarrage, l'erreur suivante peut se produire (si elle ne se produit pas, vous pouvez simplement poursuivre l'installation) :

    Mise en place d'un environnement local pour le développement Java EE - 2

    Cela signifie que le programme d'installation n'a pas pu trouver le chemin d'accès à l'environnement d'exécution Java préinstallé. L'erreur peut être corrigée en transmettant manuellement le chemin d'accès au JRE à l'aide de la ligne de commande. Pour ce faire, vous devez exécuter le fichier d'installation via PowerShell et transmettre le chemin d'accès au JRE préinstallé via le paramètre -j.

    Par exemple, comme ceci :

    Mise en place d'un environnement local pour le développement Java EE - 3
  4. La procédure d'installation ultérieure est assez typique pour la plupart des programmes. Tout ce que vous avez à faire est de cliquer sur les boutons Suivant et Installer.

    Le programme installera le SDK Java EE, ainsi que le serveur GlassFish, qui, une fois l'installation terminée, seront opérationnels et prêts à être utilisés.

  5. Pour vous assurer que le serveur GlassFish fonctionne, une fois l'installation terminée, vous pouvez ouvrir le panneau d'administration du serveur, qui sera disponible à l'adresse : http://localhost:4848/

    Capture d'écran ci-dessous :

    Mise en place d'un environnement local pour le développement Java EE - 4

GlassFish démarre et s'arrête via la ligne de commande

Le serveur est donc opérationnel, mais le démarrage du serveur a été initié par le programme d'installation. Ci-dessous, nous essaierons de comprendre comment démarrer et arrêter le serveur vous-même. Tout d'abord, révélons une telle entité en tant que domaine. Un domaine est un ensemble d'une ou plusieurs instances de serveur GlassFish gérées par un serveur d'administration. Lors de l'installation du serveur GlassFish, un domaine par défaut est créé - domain1. Les composants suivants lui sont associés :
  • Port du serveur (par défaut 8080) ;
  • Port du serveur d'administration (4848 par défaut) ;
  • Nom d'utilisateur et mot de passe de l'administrateur (la valeur par défaut est admin et aucun mot de passe n'est requis par défaut).
Domain1 se voit attribuer des valeurs par défaut. Mise en place d'un environnement local pour le développement Java EE - 5Pour démarrer et arrêter le serveur, la distribution GlassFish comprend plusieurs scripts, qui se trouvent par défaut dans le répertoire suivant : C:\glassfish4\glassfish\bin Pour démarrer et arrêter le serveur GlassFish via la ligne de commande, vous pouvez utiliser le script asadmin et ses commandes :
asadmin start-domain domain_name
asadmin stop-domain domain_name
Essayons d'arrêter le serveur (puisqu'il est déjà en cours d'exécution après l'installation) en exécutant PowerShell depuis le sous-répertoire C:\glassfish4\glassfish\bin : Mise en place d'un environnement local pour le développement Java EE - 6Le serveur est arrêté. Maintenant, exécutons-le : Mise en place d'un environnement local pour le développement Java EE - 7

Nous analysons la première application Java EE, dukes-age

Nous examinerons ensuite une application de démonstration Java EE : dukes-age. Cette application est incluse dans le SDK Java EE avec l'application First-Cup. Les descriptions de ces applications sont présentées sur le site Web de documentation officiel d'Oracle dans les sections 3 et 4 du cours d'introduction à Java EE pour les développeurs Java EE débutants . Dans cet article, nous examinerons brièvement l'application Dukes-Age et examinerons plus en détail le processus de lancement de cette application sur le serveur GlassFish à partir de l'environnement de développement IntelliJ IDEA. L'application se trouve dans le répertoire du serveur glassfish. Si vous n'avez pas modifié le chemin par défaut du serveur glassfish lors de l'installation du SDK Java EE, vous pouvez trouver cette application dans le dossier : C:\glassfish4\docs\firstcup\example\dukes-age . Probablement tous les développeurs Java, débutants et expérimentés, ont vu au moins une fois la mascotte du langage de programmation Java - Duke : Mise en place d'un environnement local pour le développement Java EE - 8Peu de gens savent que Duke a un anniversaire. Il est né le 23 mai 1995, lorsque la première version démo de la technologie Java a été publiée. L'application Dukes-Age, comme son nom l'indique, fournit des informations sur l'âge de Duke. Ouvrons cette application dans IntelliJ IDEA : Fichier -> Nouveau -> Projet à partir de sources existantes... Accédez ensuite au dossier contenant l'application dukes-age, située par défaut dans C:\glassfish4\docs\firstcup\example\dukes- age , sélectionnez le fichier pom.xml et cliquez sur OK : Mise en place d'un environnement local pour le développement Java EE - 9Une application avec la structure suivante s'ouvrira : Mise en place d'un environnement local pour le développement Java EE - 10Jetons un coup d'œil au code de la classe DukesAgeResource:
package firstcup.dukesage.resource;

import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

/**
 * REST Web Service
 *
 */
@Path("dukesAge")
public class DukesAgeResource {

    /** Creates a new instance of DukesAgeResource */
    public DukesAgeResource() {
    }

    /**
     * Retrieves representation of an instance of DukesAgeResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("text/plain")
    public String getText() {
        // Create a new Calendar for Duke's birthday
        Calendar dukesBirthday = new GregorianCalendar(1995, Calendar.MAY, 23);
        // Create a new Calendar for today
        Calendar now = GregorianCalendar.getInstance();

        // Subtract today's year from Duke's birth year, 1995
        int dukesAge = now.get(Calendar.YEAR) - dukesBirthday.get(Calendar.YEAR);
        dukesBirthday.add(Calendar.YEAR, dukesAge);

        // If today's date is before May 23, subtract a year from Duke's age
        if (now.before(dukesBirthday)) {
            dukesAge--;
        }
        // Return a String representation of Duke's age
        return "" + dukesAge;
    }
}
Il s'agit d'un service Web JAX-RS RESTful avec une seule méthode - getText(). Si vous examinez le code de cette méthode, il devient clair que la méthode renvoie le nombre d'années écoulées depuis la naissance de Duke. Autrement dit, la méthode renvoie l'âge de Duke. Une classe est une ressource dans un contexte REST.
  1. L'annotation au-dessus de la classe @Path("dukesAge")définit le chemin URI vers lequel les appels seront traités par cette classe.
  2. L'annotation au-dessus de la méthode @GETnous indique que cette méthode traite les requêtes GET.
  3. L'annotation @Produces("text/plain")spécifie le type de média de la réponse à la demande. Il n'est pas difficile de deviner que la méthode getText()générera des réponses avec le type de média : texte/plain.
Jetons également un coup d'œil au fichier de configuration web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
    </servlet>
    <servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>
Dans ce fichier, à l'intérieur de la balise servlet-mapping, une balise url-patternavec la valeur est définie /webapi/*. Ici, un certain point racine est défini, les appels vers lesquels seront traités ultérieurement par le service. Si combiné avec l'annotation @Path("dukesAge"), il s'avère que pour obtenir des informations sur l'âge de Duke, vous devez contacter l'adresse /webapi/dukesAge.

Configuration d'IntelliJ IDEA pour exécuter une application Java EE sur un serveur GlassFish

Maintenant que nous avons une idée très générale de l'application dukes-age (en savoir plus à ce sujet sur le site Oracle ), configurons IntelliJ IDEA pour pouvoir exécuter cette application depuis notre IDE. Configuration d'IntelliJ IDEA
  1. Pour cela, allez dans le menu Exécuter -> Modifier les configurations.
  2. Le panneau Configurations d'exécution/débogage s'ouvrira : Mise en place d'un environnement local pour le développement Java EE - 11
  3. Nous devons ajouter une nouvelle configuration. Pour ce faire, cliquez sur le signe plus ou utilisez le raccourci clavier Alt+Inser. Dans la liste qui s'ouvre, sélectionnez GlassFish Server -> Local : Mise en place d'un environnement local pour le développement Java EE - 12
  4. Dans la fenêtre qui s'ouvre, commençons par configurer la configuration : Mise en place d'un environnement local pour le développement Java EE - 13
  5. L'étape suivante consiste à indiquer les artefacts qui devront être déployés sur le serveur. Cela peut être fait via l'onglet Déploiement en cliquant sur le plus -> Artefact... Mise en place d'un environnement local pour le développement Java EE - 14
  6. Sélectionnez dukes-age:war et cliquez sur OK : Mise en place d'un environnement local pour le développement Java EE - 15
  7. Enregistrez ensuite notre configuration en cliquant sur Appliquer puis sur OK.
La configuration a été créée !

Lancement de l'application

Essayons maintenant d'exécuter l'application.
  1. Pour ce faire, vous pouvez utiliser le raccourci clavier Alt+Shift+F10, ou via le menu Exécuter -> Exécuter...

    Et sélectionnez la configuration Dukes-Age que nous avons créée :

    Mise en place d'un environnement local pour le développement Java EE - 16

  2. Après cela, nous voyons les journaux de démarrage dans le panneau Services :

    Mise en place d'un environnement local pour le développement Java EE - 17
  3. Ensuite, si tout est fait selon les instructions, le navigateur s'ouvrira et il deviendra clair que rien ne fonctionne :

    Mise en place d'un environnement local pour le développement Java EE - 18
Tel est le monde informatique. Même si tout est fait correctement, il se peut que quelque chose ne fonctionne pas. Mais ne vous inquiétez pas : vous pourriez immédiatement décrire comment procéder correctement, mais certaines nuances seraient alors moins évidentes. Par exemple, comment est générée l’url vers laquelle IDEA nous dirige lors du lancement de l’application ? Faisons-y attention. Nous avons été redirigés vers http://localhost:8080/dukes-age-7.0.1/ . Pour comprendre d'où cela vient (/dukes-age-7.0.1/), allons dans le panneau d'administration du serveur GlassFish. Dans le menu de gauche, cliquez sur Applications. Vous verrez ensuite les applications déployées, y compris Dukes-Age. Lorsque vous sélectionnez l'application dukes-age, vous pouvez voir certaines de ses caractéristiques, notamment l'élément Context-Root : Mise en place d'un environnement local pour le développement Java EE - 19dukes-age-7.0.1 est le nom et la version de l'application. Point racine. Toutes les requêtes que dukes-age traitera doivent commencer par le préfixe /dukes-age-7.0.1/. Nous avons donc un point racine : /dukes-age-7.0.1. De plus, nous avons précédemment expliqué que notre application traiterait les requêtes adressées à /webapi/dukesAge. Combinons ces deux choses et mettons à jour notre configuration.
  1. Pour cela, retournons dans IntelliJ IDEA, puis dans le menu : Exécuter -> Modifier les configurations...

  2. Sélectionnons la configuration précédemment enregistrée et mettons à jour l'URL conformément à la capture d'écran ci-dessous :

    Mise en place d'un environnement local pour le développement Java EE - 20
  3. Sauvegardons la configuration et redémarrons notre application en utilisant le raccourci clavier Ctrl+Shift+F10, ou en utilisant un bouton spécial sur le panneau Services :

    Mise en place d'un environnement local pour le développement Java EE - 21
  4. Après le redémarrage, si tout a été fait correctement, nous verrons l'âge de Duke :

    Mise en place d'un environnement local pour le développement Java EE - 22
Super. Nous avons finalement découvert que Duke avait 24 ans. Si vous ne répétez pas toutes les étapes décrites ci-dessus au cours des prochains mois, à partir d’avril 2020, Duke vieillira probablement un peu.

Conclusion

Dans cet article, nous avons examiné comment configurer votre environnement local pour qu'il fonctionne avec les applications Java EE en utilisant l'exemple du serveur GlassFish 4.0, l'environnement de développement IntelliJ IDEA 2019.3.1 (Ultimate) et le SDK Java EE version 7. Nous avons examiné comment vous pouvez :
  • téléchargez et installez le SDK Java EE, ainsi que le serveur GlassFish ;
  • arrêter et démarrer le serveur GlassFish via PowerShell ;
  • configurez IntelliJ IDEA afin de pouvoir déployer des applications Java EE de l'IDE vers le serveur GlassFish et les lancer immédiatement.

Tâche bonus

  1. Répétez vous-même toutes les étapes décrites.
  2. Suivez un cours d'introduction à Java EE pour les développeurs Java EE débutants d'Oracle .
  3. Article avec un astérisque. Essayez de déployer vous-même la deuxième application de démonstration First-Cup. Cette application est plus interactive et interagit également avec l'application Dukes-Age. Pour réaliser cette étape, vous devrez comprendre de manière indépendante les questions suivantes :
    1. Comment activer la base de données à l'intérieur du serveur glassFish ;
    2. Comment intégrer deux applications entre elles (à l'intérieur de First-Cup, indiquez le chemin vers le point final Dukes-Age, dont nous avons discuté dans cet article) ;
    3. Comment créer une nouvelle configuration dans Intellij IDEA pour le déploiement de la première tasse (similaire à ce qui a été montré dans cet article) ;
    4. Peut-être beaucoup d'autres questions)
PS La barrière à l’entrée est élevée, mais n’est-ce pas ce qui vous motive ?
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION