Google Code disponible en: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
Las aplicaciones Java de App Engine utilizan el estándar Java Servlet para interactuar con el entorno del servidor web. Algunos archivos de la aplicación, que incluyen clases compiladas, JAR, archivos estáticos y archivos de configuración, están organizados en una estructura de directorio que utiliza el formato estándar WAR para aplicaciones web Java. Puedes utilizar el proceso de desarrollo que desees para desarrollar servlets web y para generar un directorio WAR. (Los archivos del archivo WAR no son compatibles con el SDK).
Para este tutorial, utilizarás un único directorio denominado Guestbook/ para todos los archivos del proyecto. Un subdirectorio llamado src/ contiene el código fuente Java y otro subdirectorio llamado war/ contiene la aplicación completa organizada en formato WAR. El proceso de compilación compila los archivos fuente Java y coloca las clases compiladas en la ubicación apropiada en war/.
El directorio completo del proyecto es similar a:
Guestbook/
src/
...Java source code...
META-INF/
...other configuration...
war/
...JSPs, images, data files...
WEB-INF/
...app configuration...
lib/
...JARs for libraries...
classes/
...compiled classes...
Si utilizas Eclipse, crea un nuevo proyecto haciendo clic en el botón "New Web Application Project" de la barra de herramientas:
Asigna al proyecto un nombre (Project name) de Guestbook y un paquete (Package) de guestbook. Desactiva la casilla "Use Google Web Toolkit" y asegúrate de que la casilla "Use Google App Engine" esté activada. Para obtener más información, consulta Uso del complemento de Google para Eclipse. El asistente creará la estructura de directorio y los archivos descritos a continuación.
Si no utilizas Eclipse, crea la estructura de directorio descrita a continuación. Mientras lees los archivos descritos en esta sección, crea los archivos con los nombres y ubicaciones especificados.
También puedes copiar la nueva plantilla del proyecto, que se incluye en el SDK, en el directorio appengine-java-sdk/demos/new_project_template/.
Las aplicaciones Java de App Engine utilizan el API Java Servlet para interactuar con el servidor web. Un servlet HTTP es una clase de aplicación que puede procesar y responder solicitudes web. Esta clase amplía la clase javax.servlet.GenericServlet o a la clase javax.servlet.http.HttpServlet.
El proyecto del libro de invitados comienza con una clase Servlet simple que muestra un mensaje.
Si no utilizas el complemento de Eclipse, crea los directorios para la ruta src/guestbook/ y, a continuación, crea el archivo de clase Servlet descrito a continuación.
El directorio src/guestbook/ incluye un archivo denominado GuestbookServlet.java que contiene lo siguiente:
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");
}
}
Cuando el servidor web recibe una solicitud, decide qué clase de servlet ejecutar mediante un archivo de configuración conocido como "descriptor de implementación de la aplicación web". Este archivo se denomina web.xml y se ubica en el directorio war/WEB-INF/ del WAR. WEB-INF/ y web.xml forman parte de la especificación del servlet.
El directorio war/WEB-INF/ incluye un archivo denominado web.xml que contiene lo siguiente:
<?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>
Este archivo web.xml declara un servlet denominado guestbook y lo asigna a la ruta de la URL /guestbook. También indica que siempre que el usuario extraiga una ruta de la URL que no haya sido asignada a un servlet y represente una ruta del directorio dentro del WAR de la aplicación, el servidor deberá buscar un archivo denominado index.html en el directorio y mostrarlo si lo encuentra.
App Engine necesita un archivo de configuración adicional para poder desarrollar y ejecutar la aplicación. Este archivo se denomina appengine-web.xml y se ubica en WEB-INF/ junto a web.xml. Incluye la ID registrada de la aplicación (Eclipse la crea a partir de una ID vacía que rellena el usuario), el número de versión de la aplicación y listas de archivos que se deben tratar como archivos estáticos (por ejemplo, imágenes y CSS) y archivos de recursos (por ejemplo, JSP y otros datos de aplicación).
El directorio war/WEB-INF/ incluye un archivo denominado appengine-web.xml que contiene lo siguiente:
<?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 es específico de App Engine y no forma parte del estándar servlet. Puedes encontrar archivos de esquema XML que describen el formato de este archivo en el SDK, dentro del directorio appengine-java-sdk/docs/. Para obtener más información sobre este archivo, consulta Configuración de una aplicación.
El SDK de App Engine incluye una aplicación de servidor web que puedes utilizar para probar tu aplicación. El servidor simula los servicios y el entorno App Engine, que incluyen restricciones en la zona de pruebas, el almacén de datos y los servicios.
Si utilizas Eclipse, puedes iniciar el servidor de desarrollo en el depurador de Eclipse. En el menú "Run", selecciona "Debug As > Web Application". (Si no encuentras esta opción de menú, selecciona el menú "Window > Reset Perspective...", haz clic en "OK" y, a continuación, vuelve a probar el menú "Run"). Consulta Uso del complemento de Google para Eclipse para obtener información detallada sobre la creación de la configuración de depuración.
Si no utilizas Eclipse, consulta Uso de Apache Ant para una secuencia de comandos de generación que puede crear el proyecto e iniciar el servidor de desarrollo. Para iniciar el servidor con esta secuencia de comandos de generación, introduce el comando ant runserver. Para detener el servidor, pulsa Control-C.
Inicia el servidor y, a continuación, accede a la siguiente URL a través de tu navegador:
El servidor ejecuta el servlet y muestra el mensaje en el navegador.
¡Ya tienes una aplicación App Engine completa! Puedes instalar esta sencilla aplicación de saludo ahora mismo y compartirla con usuarios de todo el mundo.
Esta aplicación muestra un saludo general para todos los usuarios. Añadamos una función para personalizar el saludo para cada invitado que utilice las cuentas de Google.
Para continuar, consulta la sección Uso del servicio de usuarios.