3

我正在尝试编写一个简单的 Google App Engine 应用程序。我正在关注本教程: https ://developers.google.com/appengine/docs/java/gettingstarted/creating ,但是我无法使其正常工作。

在本地主机上测试时,我收到:

HTTP ERROR 403
Problem accessing /. Reason:
    FORBIDDEN
Powered by Jetty://

这是我的应用程序代码:

package test;

import java.io.IOException;
import javax.servlet.http.*;

public class Test extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}

我的 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>test</servlet-name>
        <servlet-class>test.Test</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

我的 appengine-web.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>halocline-test</application>
  <version>10</version>

  <!--
    Allows App Engine to send multiple requests to one instance in parallel:
  -->
  <threadsafe>true</threadsafe>

  <!-- Configure java.util.logging -->
  <system-properties>
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
  </system-properties>

  <!--
    HTTP Sessions are disabled by default. To enable HTTP sessions specify:

      <sessions-enabled>true</sessions-enabled>

    It's possible to reduce request latency by configuring your application to
    asynchronously write HTTP session data to the datastore:

      <async-session-persistence enabled="true" />

    With this feature enabled, there is a very small chance your app will see
    stale session data. For details, see
    http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions
  -->

</appengine-web-app>

控制台输出:

Jul 06, 2012 2:42:34 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Jul 06, 2012 2:42:35 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed C:\Users\Halocline\workspace\Test\war\WEB-INF/appengine-web.xml
Jul 06, 2012 2:42:35 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed C:\Users\Halocline\workspace\Test\war\WEB-INF/web.xml
Jul 06, 2012 3:42:36 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: The server is running at http://localhost:8888/
Jul 06, 2012 3:42:36 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: The admin console is running at http://localhost:8888/_ah/admin

当我在 Web 浏览器中打开 localhost:8888 时,控制台中没有显示任何错误。

知道我做错了什么吗?

4

2 回答 2

1

您的 servlet 映射到http://localhost:8888/test

于 2012-07-06T16:23:43.027 回答
0

我相信您可能将 index.html 文件放在错误的目录中。检查它没有意外滑下WEB-INF。应该是直接下war

于 2014-03-18T16:14:20.927 回答