在本地主机上测试Google应用程序引擎Java后端

在本地主机上测试Google应用程序引擎Java后端,java,google-app-engine,servlets,backend,Java,Google App Engine,Servlets,Backend,我正试图在本地主机上测试Google App Engine Java后端。我运行了后端,并且编写了一个servlet 但是,当我向我的后端发送到url时: http://localhost:8888/MyServlet/ 我得到的只是: WARNING: No file found for: /MyServlet/ 我如何实际调用后端来启动一个实例,以便在本地测试它并发布帖子 Servlet: import java.io.BufferedReader; import jav

我正试图在本地主机上测试Google App Engine Java后端。我运行了后端,并且编写了一个servlet

但是,当我向我的后端发送到url时:

http://localhost:8888/MyServlet/
我得到的只是:

WARNING: No file found for: /MyServlet/
我如何实际调用后端来启动一个实例,以便在本地测试它并发布帖子

Servlet:

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

    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;

    @SuppressWarnings("serial")
    public class MyServlet extends HttpServlet {
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws IOException {

    resp.setContentType("text/plain");
    resp.getWriter().println("Hello, world");
}
web.xml:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <servlet>
        <servlet-name>MyBackend</servlet-name>
        <servlet-class>com.test.backend.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/_ah/start</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

MyBackend
com.test.backend.MyServlet
测试
/_啊/开始
index.html

尝试使用servlet和servlet映射标记,如下所示:

<servlet>
    <servlet-name>MyBackend</servlet-name>
    <servlet-class>com.test.backend.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyBackend</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

MyBackend
com.test.backend.MyServlet
MyBackend
/MyServlet

虽然我想建议不要在类名中使用servlet或backend之类的词;它们在开发人员的上下文之外没有任何意义,也没有给出类功能的线索

我还意识到您实现了doPost,它是用来处理表单提交的,它不会像那样在浏览器中处理裸体url请求,请将您的方法更改为doGet或service
我的问题是没有启动后端。您首先必须编写一个servlet来侦听
/\u ah/start
,并在后端启动之前响应它


是我的另一个问题,它解决了,但似乎没有帮助。然而,当我启动该项目时,我才意识到我遇到了这个问题:
PM com.google.appengine.tools.development.InstanceHelper sendStartRequest警告:启动服务器0上的/u ah/start请求。导出失败(HTTP状态代码=405)。正在重试…