0

エラーが発生しましたが、解決方法がわかりません。問題は、Java クラスで何かを作成し、保存を押した後、次のコードなしで保存するためにファイル web.xml に移動することです。

<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>

このコードにコメントを付け、その後保存します。それを行わないと、次のメッセージ エラーが表示されます。

    25-oct-2012 9:29:01 com.google.apphosting.utils.jetty.JettyLogger warn
ADVERTENCIA: EXCEPTION 
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.restart(DevAppServerImpl.java:265)
    at com.google.appengine.tools.development.gwt.AppEngineLauncher$AppEngineServletContainer.refresh(AppEngineLauncher.java:51)
    at com.google.gwt.dev.DevMode.onRestartServer(DevMode.java:349)
    at com.google.gwt.dev.shell.remoteui.RemoteUI.restartWebServer(RemoteUI.java:166)
    at com.google.gwt.dev.shell.remoteui.DevModeServiceRequestProcessor.processRestartServer(DevModeServiceRequestProcessor.java:94)
    at com.google.gwt.dev.shell.remoteui.DevModeServiceRequestProcessor.execute(DevModeServiceRequestProcessor.java:59)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.processClientRequest(MessageTransport.java:362)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.processMessage(MessageTransport.java:404)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.access$400(MessageTransport.java:44)
    at com.google.gwt.dev.shell.remoteui.MessageTransport$3.run(MessageTransport.java:322)
    at java.lang.Thread.run(Unknown Source)
25-oct-2012 9:29:01 com.google.appengine.tools.development.ApiProxyLocalImpl log
GRAVE: 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(JettyContainerService.java:191)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:239)
    at com.google.appengine.tools.development.DevAppServerImpl.restart(DevAppServerImpl.java:265)
    at com.google.appengine.tools.development.gwt.AppEngineLauncher$AppEngineServletContainer.refresh(AppEngineLauncher.java:51)
    at com.google.gwt.dev.DevMode.onRestartServer(DevMode.java:349)
    at com.google.gwt.dev.shell.remoteui.RemoteUI.restartWebServer(RemoteUI.java:166)
    at com.google.gwt.dev.shell.remoteui.DevModeServiceRequestProcessor.processRestartServer(DevModeServiceRequestProcessor.java:94)
    at com.google.gwt.dev.shell.remoteui.DevModeServiceRequestProcessor.execute(DevModeServiceRequestProcessor.java:59)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.processClientRequest(MessageTransport.java:362)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.processMessage(MessageTransport.java:404)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.access$400(MessageTransport.java:44)
    at com.google.gwt.dev.shell.remoteui.MessageTransport$3.run(MessageTransport.java:322)
    at java.lang.Thread.run(Unknown Source)

25-oct-2012 9:29:01 com.google.apphosting.utils.jetty.JettyLogger warn
ADVERTENCIA: failed SystemServiceServlet: java.lang.NullPointerException
25-oct-2012 9:29:01 com.google.apphosting.utils.jetty.JettyLogger warn
ADVERTENCIA: Failed startup of context com.google.appengine.tools.development.DevAppEngineWebAppContext@8d5bff{/,C:\Alberto\workspace\uned\RepresentacionAfc\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.restart(DevAppServerImpl.java:265)
    at com.google.appengine.tools.development.gwt.AppEngineLauncher$AppEngineServletContainer.refresh(AppEngineLauncher.java:51)
    at com.google.gwt.dev.DevMode.onRestartServer(DevMode.java:349)
    at com.google.gwt.dev.shell.remoteui.RemoteUI.restartWebServer(RemoteUI.java:166)
    at com.google.gwt.dev.shell.remoteui.DevModeServiceRequestProcessor.processRestartServer(DevModeServiceRequestProcessor.java:94)
    at com.google.gwt.dev.shell.remoteui.DevModeServiceRequestProcessor.execute(DevModeServiceRequestProcessor.java:59)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.processClientRequest(MessageTransport.java:362)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.processMessage(MessageTransport.java:404)
    at com.google.gwt.dev.shell.remoteui.MessageTransport.access$400(MessageTransport.java:44)
    at com.google.gwt.dev.shell.remoteui.MessageTransport$3.run(MessageTransport.java:322)
    at java.lang.Thread.run(Unknown Source)

誰も理由を知っていますか?

ありがとう。

4

4 に答える 4

0

私も同じ問題を抱えていて、それを理解するのに少し時間がかかりました。

最初は、例としてメールを送信するためにSystemServiceServletが絶対に必要であることを認識しました。

Eclipseウィザード上に新しいGEAプロジェクトを作成した場合は問題なく機能したため、これはGoogleやEclipseの問題ではないことがわかりました。

このバージョンのプラグインはGAEビルダーをeclipseのビルダーセクションに追加しなかったため、これはmavengwt-maven-pluginバージョン2.5.0-rc1の問題だったと思います。

バージョン2.5.0に移行しました-rc2はEclipseでプロジェクトを閉じ、すべてのm2eのもの(.settings、binフォルダーなど)をクリーンアップしました。その後、プロジェクトを再インポートしてGAEを有効にすると、すべてが再び機能しました。

それでもなお、それは本当に奇妙です。

于 2013-02-05T17:27:01.783 に答える
0

「com.google.api.server.spi.SystemServiceServlet」が実装された *.jar ファイルをインポートしましたか?

于 2012-10-25T08:01:44.443 に答える
0

例外は、クラスが次のことを示しています。

<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>

見つからない。コンパイル済みおよびその他のランタイムで、対応する .jar ファイルをインポートしたことを確認してください。

于 2012-10-25T08:03:54.990 に答える
0

答えてくれてありがとう。

私は探していて、すべての *.jar ファイルをインポートしました

アプリケーションに必要な同期メソッドを実装しました。このメソッドは web.xml ファイルで宣言されています。

  <servlet>
    <servlet-name>afcService</servlet-name>
    <servlet-class>com.afc.server.AfcServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>afcService</servlet-name>
    <url-pattern>/representacionafc/afcService</url-pattern>
  </servlet-mapping>

上記のコードを配置しない場合、アプリケーションにエラーはありませんが、上記のコードのコメントを外すと、問題が発生します。

ありがとう

于 2012-10-30T15:41:14.447 に答える