Appengine 应该可以正常工作。我已经列出了基本项目设置的所有详细信息。请查看并找到您错过的内容。
Servlet 类
App Engine Java 应用程序使用 Java Servlet API 与网络服务器交互。在目录 src/guestbook/ 中,创建一个名为 GuestbookServlet.java 的文件,其内容如下:
package guestbook;
import java.io.IOException;
import javax.servlet.http.*;
public class GuestbookServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
web.xml 文件
当 Web 服务器接收到请求时,它会使用称为“Web 应用程序部署描述符”的配置文件来确定调用哪个 servlet 类。该文件名为 web.xml,位于 WAR 中的 war/WEB-INF/ 目录中。WEB-INF/ 和 web.xml 是 servlet 规范的一部分。
在目录war/WEB-INF/中,有一个名为web.xml的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC
"-//Oracle Corporation//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>
这个 web.xml 文件声明了一个名为 guestbook 的 servlet,并将它映射到 URL 路径 /guestbook。
appengine-web.xml 文件
App Engine 需要一个额外的配置文件来确定如何部署和运行应用程序。此文件名为 appengine-web.xml,与 web.xml 一起位于 WEB-INF/ 中。
在目录war/WEB-INF/中,有一个名为appengine-web.xml的文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
<threadsafe>true</threadsafe>
</appengine-web-app>
appengine-web.xml 特定于 App Engine,不是 servlet 标准的一部分。您可以在 SDK 中的 appengine-java-sdk/docs/ 目录中找到描述此文件格式的 XML 架构文件。有关此文件的更多信息,请参阅配置应用程序。
运行项目
App Engine SDK 包含一个 Web 服务器应用程序,您可以使用它来测试您的应用程序。
选择Debug As > Web Application
。
测试应用程序
启动服务器,然后在浏览器中访问服务器的 URL。如果您使用 Eclipse 和 Google Eclipse 插件,则服务器默认使用端口 8888 运行:
http://localhost:8888/guestbook
如果您使用 dev_appserver 命令启动服务器,则默认端口为 8080:详细请参阅以下教程:
教程一:
教程 2:
教程 3: