Créer un servlet Java et un fichier WAR JSP à déployer sur Apache Tomcat 9 avec Gradle

Aperçu

--Créer un fichier WAR avec Gradle contenant Java Servlet et JSP --Déployer sur Apache Tomcat 9

Cet environnement

Créer un fichier WAR avec Gradle contenant Java Servlet et JSP

Préparez un répertoire pour mettre le code source

Cette fois, créez un répertoire appelé mywebapp dans n'importe quel répertoire et préparez-y un exemple de code simple.

$ mkdir mywebapp

$ cd mywebapp

Liste des fichiers

mywebapp
├── build.gradle
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── MyServlet.java
        └── webapp
            ├── WEB-INF
            │   └── web.xml
            └── myjsp.jsp

build.gradle

plugins {
  id 'war'
}

repositories {
  mavenCentral()
}

dependencies {
  // Java Servlet 4.0 API
  // https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api
  providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
}

// Java 14
sourceCompatibility = 14
targetCompatibility = 14

// Application
version = '1.0'

src/main/java/com/example/MyServlet.java

package com.example;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/myservlet")
public class MyServlet extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
    res.setContentType("text/html; charset=utf-8");
    try (PrintWriter out = res.getWriter()) {
      out.println("<html><body>");
      out.println("Servlet: Hello Servlet World!<br>");
      out.println(getServletContext().getServerInfo());
      out.println("</body></html>");
    }
  }
}

src/main/webapp/myjsp.jsp

<%@ page contentType="text/html; charset=utf-8" %><html><body>
JSP: Hello JSP World!<br>
<%= pageContext.getServletContext().getServerInfo() %><br>
java.vm.name: <%= System.getProperty("java.vm.name") %><br>
java.vm.vendor: <%= System.getProperty("java.vm.vendor") %><br>
java.vm.version: <%= System.getProperty("java.vm.version") %><br>
</body></html>

src/main/webapp/WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- Web Application Deployment Descriptor (Java Servlet 4.0) -->
<web-app
  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0">

  <servlet>
    <servlet-name>myjsp</servlet-name>
    <jsp-file>/myjsp.jsp</jsp-file>
  </servlet>

  <servlet-mapping>
    <servlet-name>myjsp</servlet-name>
    <url-pattern>/myjsp</url-pattern>
  </servlet-mapping>

</web-app>

Créer un fichier WAR

Créez un fichier WAR avec la tâche de génération Gradle.

$ gradle build

Assurez-vous que le fichier WAR est généré.

$ file build/libs/mywebapp-1.0.war
build/libs/mywebapp-1.0.war: Zip archive data, at least v1.0 to extract

Installez Apache Tomcat 9

Préparez le répertoire d'installation

Cette fois, créez un répertoire appelé tomcat9 dans n'importe quel répertoire et installez-le dans ce répertoire.

$ mkdir tomcat9

$ cd tomcat9

Téléchargez et décompressez Apache Tomcat 9

Apache Tomcat® - Apache Tomcat 9 Software Downloads

$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz

$ tar xf apache-tomcat-9.0.37.tar.gz

Préparer une machine virtuelle Java pour le démarrage

Définissez la variable d'environnement JAVA_HOME.

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home

$ PATH=${JAVA_HOME}/bin:${PATH}

$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.1+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14.0.1+7, mixed mode, sharing)

Assurez-vous qu'Apache Tomcat 9 démarre

Démarrez Apache Tomcat 9 avec startup.sh.

$ ./apache-tomcat-9.0.37/bin/startup.sh
Using CATALINA_BASE:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_HOME:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_TMPDIR: /Users/foo/tomcat9/apache-tomcat-9.0.37/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
Using CLASSPATH:       /Users/foo/tomcat9/apache-tomcat-9.0.37/bin/bootstrap.jar:/Users/foo/tomcat9/apache-tomcat-9.0.37/bin/tomcat-juli.jar
Tomcat started.

Assurez-vous d'y accéder avec curl et démarrez-le.

$ curl --include -s http://localhost:8080/ | head -15
HTTP/1.1 200 
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 10:38:03 GMT




<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Apache Tomcat/9.0.37</title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />

Arrêtez Apache Tomcat 9 avec shutdown.sh.

$ ./apache-tomcat-9.0.37/bin/shutdown.sh
Using CATALINA_BASE:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_HOME:   /Users/foo/tomcat9/apache-tomcat-9.0.37
Using CATALINA_TMPDIR: /Users/foo/tomcat9/apache-tomcat-9.0.37/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
Using CLASSPATH:       /Users/foo/tomcat9/apache-tomcat-9.0.37/bin/bootstrap.jar:/Users/foo/tomcat9/apache-tomcat-9.0.37/bin/tomcat-juli.jar
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED

Déployez le fichier WAR sur Apache Tomcat 9

Placez le fichier WAR dans le répertoire des applications Web Apache Tomcat 9

$ cp mywebapp/build/libs/mywebapp-1.0.war tomcat9/apache-tomcat-9.0.37/webapps/mywebapp.war

Démarrez Apache Tomcat 9

$ ./tomcat9/apache-tomcat-9.0.37/bin/startup.sh

Accéder aux servlets et JSP Java

Accédez à Java Servlet avec curl et vérifiez le fonctionnement.

$ curl --include http://localhost:8080/mywebapp/myservlet
HTTP/1.1 200 
Content-Type: text/html;charset=utf-8
Content-Length: 94
Date: Sun, 12 Jul 2020 13:06:56 GMT

<html><body>
Servlet: Hello Servlet World!<br>
Apache Tomcat/9.0.37
</body></html>

Accédez au JSP avec curl et vérifiez le fonctionnement.

$ curl --include http://localhost:8080/mywebapp/myjsp.jsp
HTTP/1.1 200 
Set-Cookie: JSESSIONID=EE7C8309A86FBBEDBCEB618759FF6022; Path=/mywebapp; HttpOnly
Content-Type: text/html;charset=utf-8
Content-Length: 204
Date: Sun, 12 Jul 2020 13:07:08 GMT

<html><body>
JSP: Hello JSP World!<br>
Apache Tomcat/9.0.37<br>
java.vm.name: OpenJDK 64-Bit Server VM<br>
java.vm.vendor: AdoptOpenJDK<br>
java.vm.version: 14.0.1+7<br>
</body></html>

Matériel de référence

Recommended Posts

Créer un servlet Java et un fichier WAR JSP à déployer sur Apache Tomcat 9 avec Gradle
Créer un servlet Java et un fichier WAR JSP à déployer sur Apache Tomcat 9 avec Gradle
Comment télécharger des fichiers (Servlet, HTML, Apache, Tomcat)
Raisons d'utiliser séparément Servlet et JSP dans le développement Java
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Pour créer un fichier Zip lors du regroupement des résultats de recherche de base de données en Java
Exécutable serveur avec Spring gradle Comment créer JAR et WAR
Essayez de créer un babillard en Java
Pour déployer manuellement Struts2 en tant que fichier war
Comment compresser un fichier JAVA CSV et le gérer dans un tableau d'octets
Comment créer un environnement Java en seulement 3 secondes
J'ai essayé de créer une compétence Clova en Java
Comment créer un URI de données (base64) en Java
Comment convertir un fichier en tableau d'octets en Java
[Java] Créer un fichier temporaire
Créez un fichier jar qui peut être exécuté sur Gradle
Comment déployer une application Java Servlet simple sur Heroku
Je veux créer un fichier Parquet même en Ruby
Comment développer et enregistrer une application Sota en Java
Créer un environnement de développement d'équipe Java et JavaScript (construction d'environnement gradle)
Un exemple CRUD simple utilisant Java Servlet / JSP et MySQL
Transfert du fichier de guerre SCP vers Tomcat
Créez une application mémo avec Tomcat + JSP + Servlet + MySQL à l'aide d'Eclipse
Créer un programme Servlet dans Eclipse
Ajouter un horodatage au nom de fichier JAR dans Gradle
Créons une application TODO dans Java 13 TODO form validation 1: Character limit-Update Gradle to use @Validated
Bonjour tout le monde en Java et Gradle
Je veux créer un fichier de guerre Servlet avec OpenJDK sur CentOS7. Sans mvn. Sans connexion Internet.
Comment tester une méthode privée et la simuler partiellement en Java
Faites en sorte qu'Apache et Tomcat travaillent ensemble en un clin d'œil sur CentOS 8
Création d'un projet (et d'un référentiel GitHub) à l'aide de Java et Gradle avec IntelliJ IDEA
[Java] Créez un fichier jar compressé et non compressé avec la commande jar
Comment enregistrer JFR (Java Flight Recorder) et générer un fichier de vidage
Avoir un outil pour créer et ouvrir une nouvelle toile dans l'aperçu Mac
Comment créer votre propre annotation en Java et obtenir la valeur
[Java] Créer et appliquer un masque des diapositives
Implémentation Java pour créer et résoudre des labyrinthes
Déployer les applications JavaServlet localement dans Tomcat
Créer une application TODO dans Java 7 Créer un en-tête
[Introduction à JSP + Servlet] Une petite animation ♬
Exemple pour décompresser le fichier gz en Java
De Java à C et de C à Java dans Android Studio
Créons une application TODO en Java 9 Créer un affichage TODO Trier par date et heure + Définir la date d'échéance sur la date actuelle
Faisons une application TODO avec Java 2 Je veux créer un modèle avec Spring Initializr et créer Hello world
Créez une application de bureau Windows dans Ruby et distribuez un fichier exécutable (.exe)!
[Java] [POI] Créer un tableau dans Word et commencer une nouvelle ligne dans une cellule
Un mémo pour créer un formulaire simple en utilisant uniquement HTML et CSS dans Rails 6
[Java] J'ai essayé de me connecter en utilisant le pool de connexion avec Servlet (tomcat) & MySQL & Java
Créons une bibliothèque d'opérations de stockage de fichiers polyvalente (?) En faisant abstraction du stockage / acquisition de fichiers avec Java
Gratter et écrire des éléments spécifiques dans un fichier
Deux façons de démarrer un thread en Java + @
Créer un CSR avec des informations étendues en Java
Comment afficher une page Web en Java
Code pour échapper aux chaînes JSON en Java