刚刚使用Eclipse June 4.2创建了一个全新的项目 使用Google App Engine SDK 1.7.4
Eclipse创建一个Servlet
public class ClockServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
}
}
和一个简单的web.xml
<servlet>
<servlet-name>Clock</servlet-name>
<servlet-class>clock.ClockServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Clock</servlet-name>
<url-pattern>/clock</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
当我部署它时,我得到通用的HTML错误页面:错误:服务器错误 从我得到的日志:
EXCEPTION java.lang.ClassNotFoundException: clock.ClockServlet
at com.google.appengine.runtime.Request.process-0925dcee3db2e16a(Request.java)
但是servlet存在且web.xml是正确的 我哪里错了?
TNX
答案 0 :(得分:3)
那么, 似乎Servlet和Web.xml是正确的,但是缺少标签,这是使用Google App Engine必须的。我想知道为什么它没有加下划线,并在文档中用大写字母书写。
标记为<load-on-startup>1</load-on-startup>
请参阅Java Application Configuration
每个自定义servlet必须在启动时加载,以便GA Engine实例化该类并接受请求。 以下是用于在GAE中部署应用程序的最终web.xml
<servlet>
<servlet-name>Clock</servlet-name>
<servlet-class>clock.ClockServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Clock</servlet-name>
<url-pattern>/clock</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
答案 1 :(得分:0)
嗨,请看看: ClassNotFoundException with ServletContextlistener
使用servlet-api
检查问题(第二个)