【问题标题】:ArrayListMultimap Exception while starting server when using the Endpoints framework - 1.9.56使用 Endpoints 框架时启​​动服务器时出现 ArrayListMultimap 异常 - 1.9.56
【发布时间】:2017-10-06 08:05:51
【问题描述】:

我使用的是 Java 应用引擎 1.9.56。我在 web.xml 中包含以下端点框架 1.0 条目

    <servlet>
        <servlet-name>SystemServiceServlet</servlet-name>
        <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
        <init-param>
            <param-name>services</param-name>
            <param-value>com.veersoft.services.api.VoucherAPI
            </param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>SystemServiceServlet</servlet-name>
        <url-pattern>/_ah/spi/*</url-pattern>
    </servlet-mapping>

启动服务器时出现以下异常

Uncaught exception from servlet
java.lang.NoClassDefFoundError: com/google/appengine/repackaged/com/google/common/collect/ArrayListMultimap
at com.google.api.server.spi.SystemService.<init>(SystemService.java:128)
at com.google.api.server.spi.SystemServiceServlet.createSystemService(SystemServiceServlet.java:170)
at com.google.api.server.spi.SystemServiceServlet.createSystemService(SystemServiceServlet.java:136)
at com.google.api.server.spi.SystemServiceServlet.init(SystemServiceServlet.java:59)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:643)
at org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:422)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:892)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:349)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1406)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1368)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:778)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:522)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:244)
at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:182)
at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:97)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:650)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:612)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:582)
at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:776)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:263)
at java.lang.Thread.run(Thread.java:745)

【问题讨论】:

  • 这是 Java 8 运行时吗?
  • 是的,这是 Java 8 运行时

标签: google-app-engine google-cloud-endpoints


【解决方案1】:

Java 8 运行时不支持 v1 框架。如果这是一个现有的应用程序,您可以选择将运行时降级到 Java 7,您可以通过在 appengine-web.xmlupgrade to the v2 frameworks 中指定来执行此操作。如果这是一个新应用,那么您应该升级到 v2 框架。

【讨论】:

  • 我使用的是 1.9.56。 1.9.57 的发行说明说 java8 不支持 v1 端点框架
  • 这是一个追溯性的答案。 Java 8 运行时从未支持 v1 框架。
猜你喜欢
  • 1970-01-01
  • 2021-10-12
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2023-03-28
相关资源
最近更新 更多