GWT:jetty在调试时抛出nullpointer异常

时间:2012-01-10 17:42:32

标签: debugging gwt

我目前正在开发gwt网络应用程序,该应用程序即将完成,但现在我在将项目调试为Web应用程序时收到以下警告:

Jan 10, 2012 5:13:55 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: failed greetServlet: java.lang.NullPointerException
Jan 10, 2012 5:13:55 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Failed startup of context com.google.appengine.tools.development.DevAppEngineWebAppContext@29ef4453{/,/home/ich/Eclipse Workspace/Mein Wochenplaner/war}
java.lang.NullPointerException
at java.lang.Class.isAssignableFrom(Native Method)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:191)
at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:239)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146)
at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Jan 10, 2012 5:13:55 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: The server is running at http://localhost:8888/
Jan 10, 2012 5:13:55 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO: The admin console is running at http://localhost:8888/_ah/admin

Eclipse仍然给我一个网址,但是当我打开它时,我得到一个http

  

503错误,服务不可用

因为我的启动html无法访问。

3 个答案:

答案 0 :(得分:7)

我有类似的问题。事实证明,当我使用一些示例代码创建Web应用程序项目模板时,servlet条目被添加到web.xml而没有任何相应的servlet代码。

简单地删除冗余条目,滚动我自己的servlet,它运行良好

答案 1 :(得分:4)

确保web.xml文档中的值指向正确的类。请参阅以下示例:

 ...
  <servlet>
    <servlet-name>greetServlet</servlet-name>
    <servlet-class>package.GreetServiceImpl</servlet-class>
  </servlet>
...

package.GreetServiceImpl应存在于您的项目中。

注意:这可能是由重命名类引起的。

答案 2 :(得分:2)

就我而言,Servlet类确实存在,web.xml正确指向它。但是,我最近搬了上课。我猜想前一个位置的编译实例在某处浮动,触发NullPointerException,即使版本也存在正确。

Maven clean为我解决了这个问题。对于那些不使用Maven的人,删除目标位置的所有内容也应该有效。