Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码在开发服务器上工作,在GAE上启动失败_Java_Google App Engine_Jersey_Objectify_Jsr311 - Fatal编程技术网

Java 代码在开发服务器上工作,在GAE上启动失败

Java 代码在开发服务器上工作,在GAE上启动失败,java,google-app-engine,jersey,objectify,jsr311,Java,Google App Engine,Jersey,Objectify,Jsr311,直到最近,我的代码在GAE和dev服务器上都运行良好。最近我上传了一个新版本,但在服务器上根本不起作用,在我的本地机器(dev服务器)上运行良好。旧版本继续在服务器上工作 每次我点击更新版本的任何URL时,都会在日志中找到以下stracktrace: Uncaught exception from servlet java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;

直到最近,我的代码在GAE和dev服务器上都运行良好。最近我上传了一个新版本,但在服务器上根本不起作用,在我的本地机器(dev服务器)上运行良好。旧版本继续在服务器上工作

每次我点击更新版本的任何URL时,都会在日志中找到以下stracktrace:

Uncaught exception from servlet
java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
    at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:287)
    at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:311)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:169)
    at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:389)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
    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 com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:136)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:468)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
    at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235)
    at java.lang.Thread.run(Thread.java:745)

(可能遗漏了1或2)

修复方法是更改此依赖项:

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

javax.ws.rs

这也是@peeskillet的评论出现的时候。

您使用的是
2.5.1
jsr311
,这是一个问题。Jersey 2使用JAX-RS 2.0,与jsr311不兼容。它在dev中是如何工作的?可能是类加载的差异。JAX-RS2.0和jsr311都是应用程序类,但JAX-2.0是一个较新的版本,它确实具有getProperties方法。不幸的是,当您看到这个错误时,这意味着jsr311的应用程序类是正在加载类的,而不是JAX-RS2.0版本。摆脱jsr311,看看会发生什么谢谢,这正是我从阅读中意识到的,当你的评论弹出时,我正在改变它:-)。
<commons.codec.version>1.10</commons.codec.version>
<commons.io.version>2.4</commons.io.version>
<commons.lang3.version>3.4</commons.lang3.version>
<commons.validator.version>1.5.0</commons.validator.version>
<freemarker.version>2.3.20</freemarker.version>
<google.http.client.version>1.21.0</google.http.client.version>
<guava.version>19.0</guava.version>
<guice.servlet.version>4.0</guice.servlet.version>
<guice.version>4.0</guice.version>
<jackson.version>2.7.0</jackson.version>
<jersey.version>2.5.1</jersey.version>
<joda.money.version>0.10.0</joda.money.version>
<junit.version>4.12</junit.version>
<lombok.version>1.16.6</lombok.version>
<objectify.version>5.1.9</objectify.version>
<stripe.version>1.38.0</stripe.version>

<appengine.version>1.9.32</appengine.version>
<gcloud.plugin.version>2.0.9.88.v20151125</gcloud.plugin.version>
<resources.plugin.version>2.7</resources.plugin.version>
<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>jsr311-api</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-server</artifactId>
    <version>${jersey.version}</version>
</dependency>