Java Resteasy 3.5.0.Final应用程序引擎标准环境-NoSuchFieldError服务器\u发送\u事件\u类型

Java Resteasy 3.5.0.Final应用程序引擎标准环境-NoSuchFieldError服务器\u发送\u事件\u类型,java,rest,google-app-engine,resteasy,Java,Rest,Google App Engine,Resteasy,我有一个非常基本的Java8应用程序,使用Resteasy3.1.4.Final部署在appengine标准env中 但是当我升级Resteasy到3.5.0.Final时 我当地的环境都很好 部署时,我会得到以下Stacktrace: 来自servlet的未捕获异常 java.lang.NoSuchFieldError:服务器\u已发送\u事件\u类型 位于org.jboss.resteasy.core.ResourceMethodInvoker.IsSereSourceMethod(Re

我有一个非常基本的Java8应用程序,使用Resteasy3.1.4.Final部署在appengine标准env中

但是当我升级Resteasy到3.5.0.Final时

  • 我当地的环境都很好
  • 部署时,我会得到以下Stacktrace:
来自servlet的未捕获异常 java.lang.NoSuchFieldError:服务器\u已发送\u事件\u类型 位于org.jboss.resteasy.core.ResourceMethodInvoker.IsSereSourceMethod(ResourceMethodInvoker.java:162) 位于org.jboss.resteasy.core.ResourceMethodInvoker。(ResourceMethodInvoker.java:147) 位于org.jboss.resteasy.core.ResourceMethodRegistry.processMethod(ResourceMethodRegistry.java:345) 位于org.jboss.resteasy.core.ResourceMethodRegistry.register(ResourceMethodRegistry.java:272) 位于org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:223) 位于org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:195) 位于org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:181) 位于org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:158) 位于org.jboss.resteasy.core.ResourceMethodRegistry.addPerRequestResource(ResourceMethodRegistry.java:77) 位于org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:496) 位于org.jboss.resteasy.spi.ResteasyDeployment.startInternal(ResteasyDeployment.java:279) 位于org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:86) 位于org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:119) 位于org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:36) 位于org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:643) 位于org.eclipse.jetty.servlet.ServletHolder.initialize(ServletHolder.java:422) 位于org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:892) 位于org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:349) 位于org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1406) 位于org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1368) 位于org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:778) 位于org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262) 位于org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:522) 位于org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 位于com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:244) 位于com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:182) 在com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.serviceRequest上(JettyServletEngineAdapter.java:97) 在com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchServletRequest(JavaRuntime.java:680)上 在com.google.apphosting.runtime.JavaRuntime$RequestRunnable.dispatchRequest(JavaRuntime.java:642)上 位于com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:612) 在com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run(JavaRuntime.java:806) 位于com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:274) 运行(Thread.java:745)

所以它似乎与环境有关。 有什么线索可以解决吗


谢谢,我也有同样的问题

我通过从pom文件中删除org.jboss.resteasy.jaxrs-api.3.0.12.Final解决了这个问题


希望这能解决你的问题。

我正在发布我在年收到的@NicoNes的答案

嗨@freddyboucher我不认为这件事对 您正在处理的无此字段错误。Resteasy 3.1.4.期末考试是 JAX-RS-API 2.0.1规范的实现,而3.5.1.Final是 JAX-RS-API2.1规范的impl和您正在谈论的缺少的字段 关于来自JAX-rs-API2.1中的javax.ws.rs.core.MediaType。 因此,您可以确保您的运行时执行不会嵌入 JAX-RS-API的错误版本

让我知道

-尼古拉斯

他是对的,我在pom.xml中有:

  <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>javax.ws.rs</groupId>
          <artifactId>javax.ws.rs-api</artifactId>
          <version>2.0.1</version>
        </dependency>
      </dependencies>
  </dependencyManagement>

javax.ws.rs
javax.ws.rs-api
2.0.1

升级到2.1,修复了我的问题

我得到了同样的错误,通过在pom.xml中排除jar解决了它

<dependencies>
          <dependency>
          [...]
            <exclusions>
                <exclusion>
                    <groupId>javax.ws.rs</groupId>
                    <artifactId>jsr311-api</artifactId>
                </exclusion>
            </exclusions>
  </dependency>
        </dependencies>

[...]
javax.ws.rs
jsr311 api
我遇到了同样的问题。 我猜任何依赖都可能导致javax.ws.rsapi的错误版本。。我没有弄清楚到底是哪种依赖。但在添加以下内容之后:

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.1</version>
</dependency>

javax.ws.rs
javax.ws.rs-api
2.1

对于我的pom.xml,问题已经解决了。不需要删除任何其他依赖项

我对org.jboss.resteasy.jaxrs-api没有任何依赖项,我也尝试了最新的resteasy 3.5.1.Final,但有相同的例外。谢谢你的帮助。用这种方式很难给你一个可能的答案。也许你也可以用你的POM文件更新帖子?谢谢@Ggrimaldo,这实际上是一个依赖问题。同样的问题,谢谢。在我的例子中,这个引用是由com.github.dockerjava:dockerJavaV3.0.13引入的。必须更新到3.1.5,通过可传递依赖性引入javax.ws.rsapi:2.1。