My favorites | Português | Sign in

Como criar um projeto

Aplicativos Java do Google App Engine usam o padrão servlet Java para interagir com o ambiente de servidor da web. Os arquivos de um aplicativo, incluindo classes compiladas, JARs, arquivos estáticos e arquivos de configuração, são organizados em uma estrutura de diretórios usando o layout do padrão WAR para aplicativos da web em Java. Você pode usar o processo de desenvolvimento que quiser para desenvolver servlets da web e produzir um diretório WAR (os arquivos WAR ainda não são suportados pelo SDK).

O diretório do projeto

Para este tutorial, usaremos um único diretório chamado Guestbook/ para todos os arquivos do projeto. Um subdiretório chamado src/ contém o código fonte Java e um subdiretório chamado war/ contém o aplicativo completo organizado no formato WAR. Nosso processo de construção compila os arquivos de origem Java e coloca as classes compiladas no local apropriado no war/.

O diretório completo do projeto é semelhante ao seguinte:

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...

Se você estiver usando o Eclipse, crie um novo projeto clicando no botão New Web Application Project (Novo projeto de aplicativo da web) na barra de ferramentas: O botão Novo projeto de aplicativo da web. Use Guestbook como o nome do projeto e guestbook como o pacote. Desmarque "Use Google Web Toolkit" (Usar o Google Web Toolkit) e verifique se "Use Google App Engine" (Usar o Google App Engine) esteja selecionado. Consulte Como usar o Plug-in do Google para o Eclipse para obter mais informações. O assistente cria a estrutura de diretórios e os arquivos descritos abaixo.

Se você não estiver usando o Eclipse, crie a estrutura de diretórios descrita acima. À medida que você lê cada um dos arquivos descritos nesta seção, crie os arquivos usando os locais e nomes especificados.

Você também pode copiar o novo modelo de projeto incluído com o SDK, no diretório appengine-java-sdk/demos/new_project_template/.

A classe de servlet

Aplicativos Java do Google App Engine usam a API de servlet Java para interagir com o servidor da web. Um servlet HTTP é uma classe de aplicativo que pode processar e responder solicitações da web. Essa classe se estende para a classe javax.servlet.GenericServlet ou para a classe javax.servlet.http.HttpServlet.

O nosso projeto de livro de visitantes começa com uma classe de servlet, um servlet simples que exibe uma mensagem.

Se você não estiver usando o plug-in para o Eclipse, crie os diretórios para o caminho src/guestbook/ e crie o arquivo da classe de servlet descrito abaixo.

No diretório src/guestbook/, um arquivo chamado GuestbookServlet.java tem o seguinte conteúdo:

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");
    }
}

O arquivo web.xml

Quando o servidor da web recebe uma solicitação, ele determina qual classe de servlet deve chamar usando um arquivo de configuração conhecido como o "descritor de implementação do aplicativo da web". Esse arquivo é chamado web.xml e reside no diretório war/WEB-INF/ no WAR. WEB-INF/ e web.xml fazem parte da especificação do servlet.

No diretório war/WEB-INF/, um arquivo chamado web.xml tem o seguinte conteúdo:

<?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>

Esse arquivo web.xml declara um servlet chamado guestbook e o mapeia para o caminho do URL /guestbook. Ele também afirma que sempre que o usuário obtém um caminho de URL que ainda não foi mapeado para um servlet e representa um caminho de diretório dentro do WAR do aplicativo, o servidor deve procurar um arquivo chamado index.html nesse diretório e servi-lo caso o encontre.

O arquivo appengine-web.xml

O Google App Engine precisa de um arquivo de configuração adicional para descobrir como implementar e executar o aplicativo. Esse arquivo é chamado appengine-web.xml e reside no WEB-INF/ junto com web.xml. Ele inclui o ID registrado do seu aplicativo (o Eclipse cria isso com um ID vazio para que você preencha posteriormente), o número da versão do seu aplicativo e listas de arquivos que devem ser tratados como arquivos estáticos (como imagens e CSS) e arquivos de recursos (como JSPs e dados de outros aplicativos).

No diretório war/WEB-INF/, um arquivo chamado appengine-web.xml tem o seguinte conteúdo:

<?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 é específico ao Google App Engine e não faz parte do padrão servlet. Você pode encontrar arquivos de esquema XML descrevendo o formato desse arquivo no SDK, no diretório appengine-java-sdk/docs/. Consulte Configuração de um aplicativo para obter mais informações sobre esse arquivo.

Como executar o projeto

O SDK do Google App Engine inclui um aplicativo de servidor da web que pode ser usado para testar o seu aplicativo. O servidor simula o ambiente e os serviços do Google App Engine, incluindo restrições ao sandbox, o armazenamento de dados e os serviços.

Se você estiver usando o Eclipse, poderá iniciar o servidor de desenvolvimento dentro do depurador do Eclipse. No menu Run (Executar), selecione Debug As (Depurar como) > Web Application (Aplicativo da web) (caso você não veja essa opção de menu, selecione o menu Window (Janela) > Reset Perspective... (Redefinir perspectiva...), clique em OK e tente o menu Run (Executar) novamente.) Consulte Como usar o Plug-in do Google para o Eclipse para obter detalhes sobre como criar a configuração de depuração.

Se você não estiver usando o Eclipse, consulte Como usar o Apache Ant para obter um script de construção que pode criar o projeto e iniciar o servidor de desenvolvimento. Para iniciar o servidor com esse script de construção, digite o seguinte comando: ant runserver Para parar o servidor, pressione Control-C.

Teste do aplicativo

Inicie o servidor e, em seguida, visite o seguinte URL no seu navegador:

O servidor chama o servlet e exibe a mensagem no navegador.

Próximo passo...

Agora você tem um aplicativo completo do Google App Engine! Você pode implementar esta simples saudação agora mesmo e compartilhá-la com usuários em todo o mundo.

Esse aplicativo exibe uma saudação genérica a todos os usuários. Vamos adicionar um recurso para personalizar a saudação para cada visitante usando as Contas do Google.

Vá para Como usar o serviço de usuários.