Eclipse http 503错误gwt jetty服务器服务不可用
在web浏览器中运行项目时,我从eclipse集成jetty服务器中得到503错误。由于更改了项目的gae应用程序id,因此出现了此错误Eclipse http 503错误gwt jetty服务器服务不可用,eclipse,google-app-engine,gwt,jetty,Eclipse,Google App Engine,Gwt,Jetty,在web浏览器中运行项目时,我从eclipse集成jetty服务器中得到503错误。由于更改了项目的gae应用程序id,因此出现了此错误 java.lang.ClassNotFoundException: com.google.api.server.spi.SystemServiceServlet at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Nati
java.lang.ClassNotFoundException: com.google.api.server.spi.SystemServiceServlet
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:176)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.mortbay.util.Loader.loadClass(Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
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)
21.08.2012 16:09:42 com.google.appengine.tools.development.ApiProxyLocalImpl log
SCHWERWIEGEND: javax.servlet.ServletContext log: unavailable
javax.servlet.UnavailableException: com.google.api.server.spi.SystemServiceServlet
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:242)
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(JettyContainerS ervice.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)
21.08.2012 16:09:42 com.google.apphosting.utils.jetty.JettyLogger warn
WARNUNG: failed SystemServiceServlet: java.lang.NullPointerException
21.08.2012 16:09:43 com.google.apphosting.utils.jetty.JettyLogger warn
WARNUNG: Failed startup of context com.google.appengine.tools.development.DevAppEngineWebAppContext@9f4160a{/,C:\Users\dp\work space\fooApp\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)
21.08.2012 16:09:46 com.google.appengine.tools.development.DevAppServerImpl start
INFO: The server is running at http://localhost:8888/
21.08.2012 16:09:46 com.google.appengine.tools.development.DevAppServerImpl start
INFO: The admin console is running at http://localhost:8888/_ah/admin
这是我的web.xml文件
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>fooApp.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>phonegapfileapi</servlet-name>
<servlet class>com.googlecode.gwtphonegap.server.file.FileRemoteServiceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>phonegapfileapi</servlet-name>
<url-pattern>/showcase/phonegapfileapi</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value/>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SystemServiceServlet</servlet-name>
<url-pattern>/_ah/spi/*</url-pattern>
</servlet-mapping>
fooApp.html
phonegapfileapi
com.googlecode.gwtphonegap.server.file.FileRemoteServiceServlet
phonegapfileapi
/showcase/phonegapfileapi
SystemServiceServlet
com.google.api.server.spi.SystemServiceServlet
服务
SystemServiceServlet
/_ah/spi/*
所有jar都位于fooApp/war/WEB-INF/lib中
我怎样才能解决这个问题?
请帮忙。我也面临同样的问题。只有当您希望在jetty中部署web管理servlet时,才需要SystemServiceServlet 在我的例子中,问题是GAE eclipse插件默认使用的是GAE Java SDK 1.6,包com.google.api.server甚至不存在。我通过手动将SDK设置为GAE SDK 1.7来修复它
更改SDK时要小心,我尝试更改默认SDK,但仍然存在此问题,直到我选择了指向1.7的“使用特定SDK”。解决方案在我的情况下-只需在任务管理器中杀死所有javaw.exe*32进程。我正在使用maven,但遇到了相同的问题。对于maven,我们没有在项目属性中设置SDK版本,而是有以下插件:
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.8.3</version>
com.google.appengine
appengine maven插件
1.8.3
要解决异常:
窗口/显示视图/其他…>服务器/服务器
然后右键单击使用过的AppEngine服务器,然后单击清理…
注意:这将擦除您的本地dev数据存储,因此,如果要保留数据,请备份该文件:
…/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp${server_NUM}/${DEPLOYED_APP_NAME}/WEB-INF/appengine-generated/local_db.bin