Créer un Projet
Les applications Java™ App Engine utilisent le standard Java Servlet pour intéragir avec l'environnement du serveur web. Les fichiers d'une application , incluant les classes compilées, les JARs, les fichiers statiques et les fichiers de configuration , sont disposés dans une arborescence standard des applications web Java de type WAR. Vous pouvez utiliser n'importe quel procédé de développement pour développer les servlets web et produire un répertoire WAR. (Les fichiers archive WAR ne sont pas actuellement supportés par le SDK.)
Le Répertoire Projet
Pour ce tutoriel, nous utiliserons un simple répertoire nommé Guestbook/ pour tous les fichiers du projet.
Un sous-répertoire nommé src/ contient le code source Java, et un sous-répertoire war/
contient l'application complète sous une arborescence de type WAR. Notre procédé de construction
compile les fichiers source Java et mets les classes compilées dans la localisation appropriée: war/.
Le répertoire complet du projet ressemble à ceci:
Guestbook/
src/
...code source Java...
META-INF/
...autre configuration...
war/
...JSPs, images, fichiers de données...
WEB-INF/
...configuration de l'application...
lib/
...libraries JAR...
classes/
...classes compilées...
Si vous utilisez Eclipse, créez un novueau projet en cliquant sur le bouton Nouveau Projet Web dans la barre d'outils (Un 'g' sur un rond bleu).
Spécifiez le nom du Projet: Guestbook et le nom de "Package": guestbook.
Décocher "Use Google Web Toolkit" et assurez-vous que "Use Google App Engine" est coché.
Consultez Utiliser le Plugin Google pour Eclipse pour plus d'informations.
L'assistant crée une arborescence, et les fichiers décrits ci-dessus.
Si vous n'utilisez pas Eclipse, créez l'arborescence décrite ci-dessus. Créez les fichiers en utilisant les chemins et les noms indiqués au fur et à mesure de la lecture de chacun des fichiers décrits dans cette section.
Vous pouvez aussi copier le nouveau modèle de projet inclus avec le SDK, dans le répertoire appengine-java-sdk/demos/new_project_template/.
La Classe Servlet
Les applications Java App Engine Java utilisent l'API Servlet Java pour intéragir avec le serveur web. Une servlet HTTP est une classe de l'application qui peut traiter et répondre aux requêtes web. Cette classe étends soit la classe javax.servlet.GenericServlet ou la classe javax.servlet.http.HttpServlet.
Notre projet de livre d'or commence avec une classe servlet, une simple servlet qui affiche un message.
Si vous n'utilisez pas le plugin Eclipse, créez les répertoires src/guestbook/, puis créez le fichier de la classe servlet décris ci-dessous.
Dans le répertoire src/guestbook/, un fichier nommé GuestbookServlet.java a le contenu suivant:
package guestbook;
import java.io.IOException;
import javax.servlet.http.*;
public class GuestbookServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
Le fichier web.xml
Quand le serveur web reçoit une requête, il détermine quelle classe de servlet
appeler en utilisant le fichier de configuration connu sous le nom de "descripteur de déploiement d'application web".
Ce fichier est nommé web.xml, et réside dans le répertoire war/WEB-INF/ dans le WAR.
WEB-INF/ et web.xml font partie de la specification servlet.
Dans le répertoire war/WEB-INF/, un fichier nommé web.xml a le contenu suivant:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<servlet>
<servlet-name>guestbook</servlet-name>
<servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>guestbook</servlet-name>
<url-pattern>/guestbook</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Ce fichier web.xml déclare une servlet nommée guestbook, et l'associe au chemin de l'URL /guestbook.
Il indique également que si un utilisateur indique une URL qui n'est pas encore associée à une servlet et représente un répertoire dans l'application WAR,
le serveur recherchera un fichier nommé index.html dans ce répertoire et le fournira s'il est trouvé.
Le fichier appengine-web.xml
App Engine nécessite un fichier de configuration suplémentaire pour déterminer comment déployer et lancer l'application.
Ce fichier est nommé appengine-web.xml, et réside dans WEB-INF/ aux côtés du fichier web.xml.
Il inclut l'ID enregistré de votre application (Eclipse le crée
avec un ID vide à charge pour vous de le renseigner plus tard), le numéro de version de votre application,
et liste tous les fichiers devant être traités comme fichiers statiques
(tels que les images et les CSS) et liste les fichiers ressources (tels que les JSPs et les données d'autres applications).
Dans le répertoire war/WEB-INF/, un fichier nommé appengine-web.xml a le contenu suivant:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
</appengine-web-app>
appengine-web.xml est spécifique à App Engine, et ne fait pas
partie du standard des servlet. Vous pouvez trouvez les fichiers schema XML décrivant
le format de ce fichier dans le SDK, dans le répertoire appengine-java-sdk/docs/.
Consultez Configurer une Application pour plus d'informations à propos de ce fichier.
Exécuter le Projet
Le SDK App Engine inclut un serveur web que vous pouvez utiliser pour tester votre application. Le serveur simule l'environnement App Engine et les services, incluant les restrictions, le datastore, et les services.
Si vous utilisez Eclipse, vous pouvez démarrer le serveur de développement depuis le debugger Eclipse. Dans le menu Run, sélectionnez Debug As > Web Application. (Si vous ne voyez pas cette option de menu, sélectionnez le menu Window > Reset Perspective..., cliquez OK, puis essayez de nouveau le menu Run.) Consultez Utiliser le Plugin Google pour Eclipse pour les détails sur la création de la configuration de debug.
Si vous n'utilisez pas Eclipse, consultez Utiliser Apache Ant
pour un script qui peut construire le projet et démarrer le serveur de développement.
Pour démarrer le serveur avec ce script, tapez la commande suivante:
ant runserver Pour arrêter le serveur, pressez Control-C.
Tester l'Application
Démarrez le serveur, puis visitez l'URL suivante dans votre navigateur:
Le serveur appelle la servlet, et affiche le message dans le navigateur.
Suite...
Vous avez maintenant une application App Engine complète ! Vous pouvez déployer cette simple application dès maintenant et la partager avec les utilisateurs du monde entier.
Cette application affiche un message d'accueil générique à tous les utilisateurs. Ajoutons une caractéristique pour personnaliser le message pour chaque visiteur en utilisant Google Accounts.
Continuer vers Utiliser le service Utilisateurs.