Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Structuration de votre dossier de projet
Pour fonctionner lorsqu'ils sont déployés sur un serveur Tomcat, les fichiers WAR (web application archives) Java EE (Java Platform Enterprise Edition) compilés doivent être structurés selon certaines directives
Dans la hiérarchie recommandée ci-dessous, le code source de l'application web est placé dans un répertoire src afin de l'isoler du script de génération et du fichier WAR qu'il génère.
~/workspace/my-app/
|-- build.sh - Build script that compiles classes and creates a WAR
|-- README.MD - Readme file with information about your project, notes
|-- ROOT.war - Source bundle artifact created by build.sh
`-- src - Source code folder
|-- WEB-INF - Folder for private supporting files
| |-- classes - Compiled classes
| |-- lib - JAR libraries
| |-- tags - Tag files
| |-- tlds - Tag Library Descriptor files
| `-- web.xml - Deployment Descriptor
|-- com - Uncompiled classes
|-- css - Style sheets
|-- images - Image files
|-- js - JavaScript files
`-- default.jsp - JSP (JavaServer Pages) webpageLe contenu du dossier src correspond à ce que vous allez empaqueter et déployer sur le serveur, à l'exception du dossier com. Le dossier com contient vos classes non compilées (fichiers .java). Ils doivent être compilés et placés dans le répertoire WEB-INF/classes afin d'être accessibles à partir du code de votre application.
Le répertoire WEB-INF contient le code et les configurations qui ne sont pas publiquement traités sur le serveur web. Les autres dossiers situés à la racine du répertoire source (css, images et js) sont publiquement disponibles à l'emplacement correspondant sur le serveur web.
L'exemple suivant est identique au répertoire de projet précédent, sauf qu'il contient davantage de fichiers et de sous-répertoires. Cet exemple de projet inclut des balises simples, des classes de modèle et de support, et un fichier Java Server Pages (JSP) pour une ressource record. Il inclut également une feuille de style et, JavaScript pour Bootstrap
WEB-INF/lib inclut un fichier JAR (Java Archive) contenant le pilote JDBC (Java Database Connectivity) pour PostgreSQL. WEB-INF/classes est vide, car les fichiers de classe n'ont pas encore été compilés.
~/workspace/my-app/
|-- build.sh
|-- README.MD
|-- ROOT.war
`-- src
|-- WEB-INF
| |-- classes
| |-- lib
| | `-- postgresql-9.4-1201.jdbc4.jar
| |-- tags
| | `-- header.tag
| |-- tlds
| | `-- records.tld
| `-- web.xml
|-- com
| `-- myapp
| |-- model
| | `-- Record.java
| `-- web
| `-- ListRecords.java
|-- css
| |-- bootstrap.min.css
| `-- myapp.css
|-- images
| `-- myapp.png
|-- js
| `-- bootstrap.min.js
|-- 404.jsp
|-- default.jsp
`-- records.jsp
Création d'un fichier WAR avec un script Shell
build.sh est un script shell très simple qui compile les classes Java, crée un fichier WAR et le copie dans le répertoire webapps de Tomcat pour les tests en local.
cd src
javac -d WEB-INF/classes com/myapp/model/Record.java
javac -classpath WEB-INF/lib/*:WEB-INF/classes -d WEB-INF/classes com/myapp/model/Record.java
javac -classpath WEB-INF/lib/*:WEB-INF/classes -d WEB-INF/classes com/myapp/web/ListRecords.java
jar -cvf ROOT.war *.jsp images css js WEB-INF
cp ROOT.war /Library/Tomcat/webapps
mv ROOT.war ../
Dans le fichier WAR, vous trouvez la même structure que celle du répertoire src figurant dans l'exemple précédent, à l'exception du dossier src/com. La commande jar crée automatiquement le fichier META-INF/MANIFEST.MF.
~/workspace/my-app/ROOT.war
|-- META-INF
| `-- MANIFEST.MF
|-- WEB-INF
| |-- classes
| | `-- com
| | `-- myapp
| | |-- model
| | | `-- Records.class
| | `-- web
| | `-- ListRecords.class
| |-- lib
| | `-- postgresql-9.4-1201.jdbc4.jar
| |-- tags
| | `-- header.tag
| |-- tlds
| | `-- records.tld
| `-- web.xml
|-- css
| |-- bootstrap.min.css
| `-- myapp.css
|-- images
| `-- myapp.png
|-- js
| `-- bootstrap.min.js
|-- 404.jsp
|-- default.jsp
`-- records.jsp
Utiliser .gitignore
Pour éviter de valider les fichiers de classe compilés et les fichiers WAR dans votre référentiel Git, ou de voir des messages les concernant lorsque vous exécutez les commandes Git, ajoutez les types de fichiers appropriés à un fichier nommé .gitignore dans votre dossier de projet.
~/workspace/myapp/.gitignore
*.zip
*.class