Aide à la création d'une Web application avec Maven et configuration du serveur Jetty

Fonctionnement général

Pour créer une Web application avec Jetty, il faut créer un projet Java classique, et y intégrer les dépendances nécessaires pour qu'il puisse tourner dans le container de servlets Jetty. Dans ce document, la procédure indiquée utilise Maven (version >= 3). Vous devez donc avoir Maven installé et un repository local configuré sur votre machine.

Les différentes étapes de création d'un projet sont détaillées, mais vous pouvez "prendre le train en marche" et récupérer le projet Maven terminé pour le compiler et le faire tourner en local.

Création d'une Web application avec Maven

Création d’un projet Maven Webapp :

mvn archetype:create
   -DgroupId=<monGroupId>
   -DartifactId=<monArtifactId>
   -DarchetypeArtifactId=maven-archetype-webapp

Aller dans le répertoire créé et taper :
mvn package.
Maven vous a créé la structure d'un projet Webapp correspondant à maven-archetype-webapp. Il comporte notamment une page index.jsp que vous pourrez appeler pour tester le déploiement de votre projet

Premier déploiement

Générez le .war avec la commande mvn install. Vous trouverez le fichier .war (que vous pouvez par exemple recopier dans le répertoire webapp de Tomcat) dans le répertoire target de votre application. Testez le déploiement pour vérifier que votre archive est consistante et que vous pouvez accéder à la page d'accueil.

Rajout des dépendances vers Jetty

Éditez le pom.xml de votre application et rajoutez les dépendances ci-dessous dans l'élément dependencies :

	<dependency>
		<groupId>org.eclipse.jetty</groupId>
		<artifactId>jetty-server</artifactId>
		<version>8.1.10.v20130312</version>
	</dependency>
	<dependency>
		<groupId>org.eclipse.jetty</groupId>
		<artifactId>jetty-websocket</artifactId>
		<version>8.1.10.v20130312</version>
	</dependency>
	<dependency>
		<groupId>javax</groupId>
		<artifactId>javaee-web-api</artifactId>
		<version>6.0</version>
		<scope>provided</scope>
	</dependency>

Rajoutez le plugin ci-dessous dans l'élément build :


	<plugins>
		<plugin>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty-maven-plugin</artifactId>
			<version>8.1.10.v20130312</version>
			<configuration>
			<webAppConfig>
			<contextPath>/VotreContextPath</contextPath>
			</webAppConfig>
			</configuration>
		</plugin>
	</plugins>
en remplaçant "VotreContextPath" par le chemin de votre application sur le serveur.

Refaites un mvn clean install, suivi d'un mvn jetty:run et testez le fonctionnement de Jetty et le déploiement de votre application.

Modification de l'appplication

Vous allez maintenant rajouter du code Java dans votre application. Pour cela, commencez par créer un répertoire "java" dans src/main. Vous pouvez y créer des répertoires package et des fichiers Java. Si vous créez des servlets, veillez à utiliser l'API servlet version 3.0 (avec es annotations) ou à modifier le fichier src/main/webapp/WEB-INF/web.xml en conséquence. À partir de cette étape, vous devez pouvoir utiliser un IDE...

Dans le cas du chat, il faut rajouter une servlet (WebSocketChatServlet) et une classe (ChatWebSocket) dont le code est donné ici : http://java.dzone.com/articles/creating-websocket-chat. Modifiez également la page d'accueil pour y inclure l'interface et les fonctions JavaScript. Faites tourner.

Autre possibilité : récupérez le projet Maven préconfiguré disponible ici, compilez-le et faites-le tourner.

Références

Licence Creative Commons