Construction d'environnement de développement d'applications Web Java avec VS Code (struts2)

Je souhaite préparer un environnement de développement afin de pouvoir développer des applications Web Java avec VS Code. Je veux compiler et exécuter celui développé à partir de VS Code. Je veux également déboguer. Je veux aussi tester. J'ai fait des recherches diverses et j'ai eu du mal car je suis un débutant dans tout ce que j'utilise J'ai réussi à compléter l'environnement exécutable, je vais donc le résumer. J'espère que cela aidera quiconque veut faire quelque chose de similaire.

Bien que cela ne soit pas présenté dans cet article, vous pouvez également déboguer à l'aide de Tomcat.

Environnement d'exploitation

・ MacOS Catalina 10.15.2 -Visual Studio Code 1.41.1 -AdoptOpenJDK 1.8.0_232 ・ Maven 3.6.3 ・ Tomcat 9.0.30

Paramètre JAVA_HOME

J'utilisais JDK 1.8.0_221 fourni par Oracle. J'ai installé OpenJDK 1.8.0_232 fourni par Adopt à ce moment, alors passez d'abord le chemin pour l'utiliser.

Terminal


$ open ~/.bash_profile

Ouvrez .bash_profile qui décrit les variables d'environnement.

.bash_profile


export PATH=$PATH:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

Décrivez et enregistrez les paramètres PATH et JAVA_HOME.

Terminal


$ source ~/.bash_profile

Reflétez les changements dans .bash_profile.

Terminal


$ javac -version
$ java -version

Après avoir redémarré le terminal, vérifiez si les paramètres sont reflétés. ... Je pense que ce n'est pas grave si l'ensemble jdk est affiché.

Téléchargement d'Apache Tomcat

Décompressez le fichier compressé téléchargé à partir de l'URL ci-dessous et placez-le à n'importe quel emplacement. Je l'ai sous Applications. http://tomcat.apache.org/

Téléchargement d'Apache Maven

Décompressez le fichier compressé téléchargé à partir de l'URL ci-dessous et placez-le à n'importe quel emplacement. Je l'ai sous Applications. https://maven.apache.org/download.cgi

Installer l'extension VS Code

■ Java Extension Pack (les extensions suivantes sont regroupées) ・ Prise en charge des langues pour Java ™ par Red Hat ・ Débogueur pour Java ・ Java Test Runner ・ Maven pour Java ・ Visualiseur de dépendances Java ・ Visual Studio IntelliCode ■Tomcat For Java ■ Generator Junit File (je l'ai inclus parce que je voulais créer un fichier Junit en un clic.)

Définition de JAVA_HOME avec VS Code

Configurez VS Code pour utiliser Java. スクリーンショット 2020-01-13 18.27.09.png Appuyez sur F1 et entrez-le dans la zone de recherche comme indiqué dans l'image.

スクリーンショット 2020-01-13 18.27.36.png Sélectionnez ʻUser Setting` dans java.home スクリーンショット 2020-01-13 18.31.13.png Sélectionnez modifier dans settings.json スクリーンショット 2020-01-13 18.32.04.png Écrivez l'emplacement de JAVA_HOME après `" java.home ":` et redémarrez VS Code

Créer un projet struts2 avec Maven

Terminal


$ mkdir MavenProject
$ cd MavenProject
$ mvn archetype:generate

Créer un dossier pour créer une application Déplacer vers le dossier créé Commande pour créer un projet maven

Terminal


...........réduction
2545: remote -> us.fatehi:schemacrawler-archetype-maven-project (-)
2546: remote -> us.fatehi:schemacrawler-archetype-plugin-command (-)
2547: remote -> us.fatehi:schemacrawler-archetype-plugin-dbconnector (-)
2548: remote -> us.fatehi:schemacrawler-archetype-plugin-lint (-)
2549: remote -> ws.osiris:osiris-archetype (Maven Archetype for Osiris)
2550: remote -> xyz.luan.generator:xyz-gae-generator (-)
2551: remote -> xyz.luan.generator:xyz-generator (-)
2552: remote -> za.co.absa.hyperdrive:component-archetype (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1467:

Entrez struts2

Terminal


...........réduction
: Choose archetype:
1: remote -> br.com.address.archetypes:struts2-archetype (an archetype web 3.0 + struts2 (bootstrap + jquery) + JPA 2.1 with struts2 login system)
2: remote -> br.com.address.archetypes:struts2-base-archetype (An Archetype with JPA 2.1; Struts2 core 2.3.28.1; Jquery struts plugin; Struts BootStrap plugin; json Struts plugin; Login System using Session and Interceptor)
3: remote -> com.amazonaws.serverless.archetypes:aws-serverless-struts2-archetype (-)
4: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-base (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Plugin.)
5: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-mobile (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Mobile Plugin.)
6: remote -> com.jgeppert.struts2.jquery:struts2-jquery-bootstrap-archetype-grid (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Grid Plugin and the Struts2
        Bootstrap Plugin.)
7: remote -> org.apache.struts:struts2-archetype-angularjs (-)
8: remote -> org.apache.struts:struts2-archetype-blank (-)
9: remote -> org.apache.struts:struts2-archetype-convention (-)
10: remote -> org.apache.struts:struts2-archetype-dbportlet (-)
11: remote -> org.apache.struts:struts2-archetype-plugin (-)
12: remote -> org.apache.struts:struts2-archetype-portlet (-)
13: remote -> org.apache.struts:struts2-archetype-starter (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :8

Entrez 8 pour ENTRER

Terminal


Choose org.apache.struts:struts2-archetype-blank version:
1: 2.2.1
2: 2.2.1.1
3: 2.2.3
4: 2.2.3.1
5: 2.3.3
6: 2.3.4
7: 2.3.4.1
8: 2.3.7
9: 2.3.8
10: 2.3.12
11: 2.3.14
12: 2.3.14.1
13: 2.3.14.2
14: 2.3.14.3
15: 2.3.15
16: 2.3.15.1
17: 2.3.15.2
18: 2.3.15.3
19: 2.3.16
20: 2.3.16.1
21: 2.3.16.2
22: 2.3.16.3
23: 2.3.20
24: 2.3.20.1
25: 2.3.20.3
26: 2.3.24
27: 2.3.24.1
28: 2.3.24.3
29: 2.3.28
30: 2.3.28.1
31: 2.3.29
32: 2.3.30
33: 2.3.31
34: 2.3.32
35: 2.3.33
36: 2.3.34
37: 2.3.35
38: 2.3.36
39: 2.3.37
40: 2.5-BETA1
41: 2.5-BETA2
42: 2.5-BETA3
43: 2.5
44: 2.5.1
45: 2.5.2
46: 2.5.5
47: 2.5.14
Choose a number: 47:39

Entrez le numéro de version de struts2 et ENTER

Terminal


Define value for property 'groupId': Hello
Define value for property 'artifactId': exsample
Define value for property 'version' 1.0-SNAPSHOT: :
Define value for property 'package' Hello: :
Confirm properties configuration:
groupId: Hello
artifactId: exsample
version: 1.0-SNAPSHOT
package: Hello
 Y: :

groupId ... Spécifiez le nom d'un package Java. artifactId ... Spécifiez le nom du projet de manière arbitraire. version ... tel quel ENTER paquet ... tel quel ENTRER Y :: ... ENTER tel quel

Terminal


[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: struts2-archetype-blank:2.3.37
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: Hello
[INFO] Parameter: artifactId, Value: exsample
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: Hello
[INFO] Parameter: packageInPathFormat, Value: Hello
[INFO] Parameter: package, Value: Hello
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: Hello
[INFO] Parameter: artifactId, Value: exsample
[INFO] Project created from Archetype in dir: /MavenProject/exsample
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  12:24 min
[INFO] Finished at: 2020-01-13T18:54:18+09:00
[INFO] ------------------------------------------------------------------------

Création du projet Maven terminée

Structure de répertoire du projet créé

MavenProject/
└── exsample
    ├── pom.xml
    └── src
        ├── main
        │   ├── java
        │   │   └── Hello
        │   │       └── example
        │   │           ├── ExampleSupport.java
        │   │           ├── HelloWorld.java
        │   │           └── Login.java
        │   ├── resources
        │   │   ├── Hello
        │   │   │   └── example
        │   │   │       ├── Login-validation.xml
        │   │   │       ├── package.properties
        │   │   │       └── package_es.properties
        │   │   ├── example.xml
        │   │   ├── log4j2.xml
        │   │   └── struts.xml
        │   └── webapp
        │       ├── WEB-INF
        │       │   ├── example
        │       │   │   ├── HelloWorld.jsp
        │       │   │   ├── Login.jsp
        │       │   │   ├── Menu.jsp
        │       │   │   ├── Missing.jsp
        │       │   │   ├── Register.jsp
        │       │   │   └── Welcome.jsp
        │       │   └── web.xml
        │       └── index.html
        └── test
            └── java
                └── Hello
                    └── example
                        ├── ConfigTest.java
                        ├── HelloWorldTest.java
                        └── LoginTest.java

Même si vous le construisez et l'exécutez tel quel, la page préparée par défaut est affichée, mais cette fois nous allons créer une application Hello World simple à l'aide de struts2.

Ouvrez le projet créé avec VS Code

スクリーンショット 2020-01-13 19.30.12.png Ajoutez le dossier de projet d'exemple créé à votre espace de travail. スクリーンショット 2020-01-13 20.32.34.png

Ajoutée.

Créer une application Hello World simple

Modifiez le contenu du projet en une simple application d'affichage Hello World.

Structure du projet


MavenProject
└── exsample
    ├── pom.xml
    └── src
        ├── main
        │   ├── java
        │   │   └── Hello
        │   │       └── example
        │   │           └── HelloStrutsAction.java
        │   ├── resources
        │   │   └── struts.xml
        │   └── webapp
        │       ├── WEB-INF
        │       │   └── web.xml
        │       ├── hello.jsp
        │       └── index.jsp
        └── test
            └── java
                └── Hello
                    └── example

HelloStrutsAction.java


package Hello.example;
import com.opensymphony.xwork2.ActionSupport;

public class HelloStrutsAction extends ActionSupport{
  /**
   *
   */
  private static final long serialVersionUID = 1L;

  public String execute() {
	  return SUCCESS;
  }
}

struts.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
  "http://struts.apache.org/dtds/struts-2.3.dtd">

  <struts>
    <constant name = "struts.devMode" value = "true"/>
    <package name = "Hello.example" extends = "struts-default">
      <action name = "HelloStrutsAction" class = "Hello.example.HelloStrutsAction" method = "execute">
        <result name = "success">hello.jsp</result>
      </action>

    </package>
  </struts>

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <display-name>WebProj</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern> 
  </filter-mapping>
</web-app>

hello.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>HelloStruts</title>
</head>
<body>
  <h2>HelloStruts2!</h2>
</body>
</html>

index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8">
<title>INDEX</title>
</head>
<body>
  <s:form action = "HelloStrutsAction">
    <s:submit value = "HelloStruts"/>
  </s:form>

</body>
</html>

Paramètres des serveurs TOMCAT

スクリーンショット 2020-01-13 19.31.31.png Si vous sélectionnez l'emplacement pour enregistrer Tomcat à partir du bouton +, vous pouvez définir le serveur Tomcat comme indiqué ci-dessous. スクリーンショット 2020-01-13 19.32.18.png

Paramètres pom.xml

Dans Maven, les informations de définition du projet sont écrites dans le fichier de configuration appelé pom.xlm. Modifiez un peu les paramètres.

pom.xlm


···············réduction
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <encoding>UTF-8</encoding>
          <source>1.5</source>
          <target>1.5</target>
      </configuration>
  </plugin>
···············réduction

Par défaut, le JDK utilisé est défini sur jdk1.5.

pom.xlm


···············réduction
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
        <encoding>UTF-8</encoding>
          <source>1.8</source>
          <target>1.8</target>
      </configuration>
  </plugin>
···············réduction

Cette fois, je vais le changer pour utiliser jdk1.8.

pom.xlm


···············réduction
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
      <version>5.1.48</version>
  </dependency>
···············réduction

Vous n'en avez pas besoin cette fois, mais écrivez-le comme ça pour inclure d'autres plugins tels que MySQL.

Paramètres MAVEN PROJECTS

スクリーンショット 2020-01-13 19.49.21.png Faites l'installation de maven. Les plugins définis dans pom.xml seront installés.

compiler

スクリーンショット 2020-01-13 19.51.01.png Compiler.

Créer un package

スクリーンショット 2020-01-13 19.51.18.png Un fichier war est créé.
MavenProjct
└── exsample
    ├── pom.xml
    ├── src
    │   ├── main
    │   │   ├── java
    │   │   │   └── Hello
    │   │   │       └── example
    │   │   │           └── HelloStrutsAction.java
    │   │   ├── resources
    │   │   │   ├── log4j2.xml
    │   │   │   └── struts.xml
    │   │   └── webapp
    │   │       ├── WEB-INF
    │   │       │   └── web.xml
    │   │       ├── hello.jsp
    │   │       └── index.jsp
    │   └── test
    │       └── java
    │           └── Hello
    │               └── example
    └── target
        ├── classes
        │   ├── Hello
        │   │   └── example
        │   │       └── HelloStrutsAction.class
        │   ├── log4j2.xml
        │   └── struts.xml
        ├── exsample-1.0-SNAPSHOT
        │   ├── META-INF
        │   ├── WEB-INF
        │   │   ├── classes
        │   │   │   ├── Hello
        │   │   │   │   └── example
        │   │   │   │       └── HelloStrutsAction.class
        │   │   │   └── struts.xml
        │   │   ├── lib
        │   │   │   ├── asm-3.3.jar
        │   │   │   ├── asm-commons-3.3.jar
        │   │   │   ├── asm-tree-3.3.jar
        │   │   │   ├── commons-fileupload-1.4.jar
        │   │   │   ├── commons-io-2.2.jar
        │   │   │   ├── commons-lang3-3.2.jar
        │   │   │   ├── freemarker-2.3.28.jar
        │   │   │   ├── javassist-3.11.0.GA.jar
        │   │   │   ├── log4j-api-2.3.jar
        │   │   │   ├── log4j-core-2.3.jar
        │   │   │   ├── ognl-3.0.21.jar
        │   │   │   ├── struts2-config-browser-plugin-2.3.37.jar
        │   │   │   ├── struts2-core-2.3.37.jar
        │   │   │   └── xwork-core-2.3.37.jar
        │   │   └── web.xml
        │   ├── hello.jsp
        │   └── index.jsp
        ├── exsample-1.0-SNAPSHOT.war
        ├── generated-sources
        │   └── annotations
        ├── maven-archiver
        │   └── pom.properties
        └── maven-status
            └── maven-compiler-plugin
                ├── compile
                │   └── default-compile
                │       ├── createdFiles.lst
                │       └── inputFiles.lst
                └── testCompile
                    └── default-testCompile
                        └── inputFiles.lst

Lorsque tout est terminé, il passera à la structure de projet ci-dessus.

L'exécution du projet

スクリーンショット 2020-01-13 20.51.53.png Cliquez avec le bouton droit sur le fichier war et sélectionnez «Exécuter sur le serveur Tomcat». スクリーンショット 2020-01-13 20.53.56.png

Faites un clic droit sur Tomcat et sélectionnez «Ouvrir dans le navigateur» pour ouvrir l'écran ci-dessous dans le navigateur.

スクリーンショット 2020-01-13 20.54.04.png

Cliquez sur le nom du projet.

スクリーンショット 2020-01-13 20.54.35.png

index.jsp s'affiche! Cliquez sur le bouton "Hello Struts" ...

スクリーンショット 2020-01-13 20.55.46.png

Vous êtes passé à hello.jsp!

Recommended Posts

Construction d'environnement de développement d'applications Web Java avec VS Code (struts2)
Préparer l'environnement de développement Java avec VS Code
Créer un environnement de développement Java avec VS Code
Créer un environnement de développement Java avec VS Code sur Mac
[Mac] Construction de l'environnement de développement VS Code (Java, Gradle, Node.js)
Comment créer un environnement de développement Java avec VS Code
Environnement de développement Java (Mac, VS Code)
Construction d'environnement de développement d'applications Web en Java (pour les personnes inexpérimentées)
construction d'environnement de développement Java
[Développement d'applications Jakarta EE 8 avec Gradle] 1. Construction de l'environnement
Création d'un environnement de développement pour les applications Web Java avec Docker pour Mac Part1
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
Développement d'applications Web Spring5 MVC avec construction de l'environnement de code Visual Studio (installation de JDK11 / Maven / Tomcat / Visual Studio Code)
[Java] Procédure de construction de l'environnement pour le développement de struts 1.3 avec Eclipse
Créer un environnement de développement de programme Java avec Visual Studio Code
Créer un environnement de développement Java + Spring avec VirtualBox + Ubuntu (Xfce4)
Construction d'environnement pour le développement d'applications Servlet
Construire Java avec Mac vs Code
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
Développement d'applications JavaFX avec IntelliJ IDEA et Gradle ~ De la construction d'environnement à l'exemple de code ~
Créer un environnement de développement Web APP avec Java + Spring avec Visual Studio Code
[Construction de l'environnement de développement Java] Installez OpenJDK 11 (Java 11) sur macOS avec Homebrew
Comparaison du développement d'applications WEB avec Rails et Java Servlet + JSP
Permettez-moi de faire le développement à distance VS Code + le développement Java dans un environnement proxy
[Probablement le plus simple] Développement d'applications WEB avec Apache Tomcat + Java Servlet
[Traitement x Java] Création d'un environnement de développement
Construction de l'environnement de développement Laravel avec Docker (Mac)
Mémo de construction de l'environnement de développement Java sur Mac
Démarrez le développement d'applications Web avec Spring Boot
Construction de l'environnement de développement Java Spring Boot + Docker
Environnement de développement d'applications Java créé dans un environnement VM
[Java] Construction de l'environnement
Environnement de développement Java
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 1/3 [Préparation]
Développement d'applications Web Spring Boot2 avec connexion Visual Studio Code SQL Server
Développement d'applications Web Spring5 MVC avec connexion Visual Studio Code SQL Server
Développement d'applications Web Spring5 MVC avec création de modèles Visual Studio Code Maven
Créez un environnement de développement d'applications Web qui utilise Java, MySQL et Redis avec Docker CE pour Windows
En utilisant Gradle avec VSCode, compilez Java → exécutez
Créer un environnement Spring Boot avec Windows + VS Code
Essayez de déboguer un programme Java avec VS Code
Procédure de construction et de développement de l'environnement local Wordpress avec Docker
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 2/3 [Création de page 1/2]
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 3/3 [Création de page 2/2]
Lombok avec VS Code
Mémo de l'environnement de développement Java
Créer un environnement VS Code + WSL + Java + Gradle à partir de zéro
Créer un environnement de développement Java sur l'installation Mac-JDK (version de préservation 2020)
Les utilisateurs Java expérimentés se lancent dans le développement d'applications Android
Manuel de construction de l'environnement de développement stable pour "Rails6" avec "Docker-compose"
[Tutoriel] Télécharger Eclipse → Lancer l'application Web avec Java (Pléiades)
À peu près le flux de développement d'applications Web avec Rails.
Les débutants créent un environnement Spring Tools Suite avec VS Code
La procédure que j'ai effectuée lorsque j'ai préparé l'environnement pour gradle + Java avec VS Code (Windows 10)
[Pour les débutants] Jusqu'à la création d'un environnement de développement d'applications Web utilisant Java sur Mac OS