直到最近,我的代码在GAE和开发服务器上都运行良好。然后最近我上传了一个新版本,它在服务器上根本不起作用,在我的本地机器(dev服务器)上运行良好。旧版本继续在服务器上工作。
每次我点击更新版本的任何URL时,都会在日志中找到以下stracktraces:
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)
这是我能找到的最相关的依赖项(它位于我在项目中使用的实用程序库中):
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
没错,javax。ws。rs.core。其中的应用程序类不包含方法。
现在的问题是,为什么/如何在dev服务器上运行这些代码?
我最近没有做任何影响这个库甚至代码的总体布局和工作的更改(只是在现有代码中添加了一些功能),那么是什么导致了这个问题呢?
当时使用的是GAE Java SDK的1.9.32版本,最近升级到1.9.34——之后问题就出现了(然而,切换回1.9.32并没有帮助)。云平台控制台表示SDK版本1.9.35。
在绝望中,我试着:
来自pom的版本。xml:
<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>
(可能错过1或2)
修复是更改此依赖项:
<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>
其中${jersey.version}
设置为2.5.1
。到目前为止不知道这是如何工作的...
当我阅读JavaRestFullWebService: JAX-RS实现与泽西2.3.1库时,我意识到了这个潜在的问题,这也是@peeskillet的评论弹出的时候。
我有一个应用程序,它使用一个在开发环境中工作的数据列表,但在生产环境中返回一个没有查找的空白字段。我想广泛使用datalist,因为它很容易提供一个自动完整的工具,但除非它在生产中工作。 Dev是在Win7下的IE11.0上的MVC VS 2010,在HTML5Test中得分302。产品是服务器2012 R2标准上的IE11.0,报告为Win8.1,在HTML5Test中得分为312分。 经过大量
尝试远程启动服务时遇到奇怪的行为。 编辑:我进一步研究了这个问题,发现只有在尝试运行我的特定服务时才会出现这种情况。这意味着我的服务必须从已经登录的用户的会话中运行(这就是为什么如果我之前使用mstsc访问服务器,它仍然可以工作)。所以我想我的新问题是--有没有一种方法可以让我从PowerShell登录到远程机器? 多谢了。
问题内容: 我正在尝试在开发GAE服务器上模拟HTTPServletRequest数据。我正在运行Eclipse插件1.3.7 我试图做到这一点: 运行以下命令会产生异常: java.lang.NoClassDefFoundError:sun.reflect.ReflectionFactory是一个受限类。有关更多详细信息,请参阅Google App Engine开发人员指南。 关于如何在GAE开
启动服务器时,出现以下错误:无法启动服务器。 localhost上的服务器GlassFish Server Open Source Edition 3(Java EE 6)无法启动。
我试图在非自定义端口(例如25565)上使用命令启动minecraft服务器: java-jar craftbukkit.jar [12:24:27 WARN]:要启动具有更多ram的服务器,请将其启动为“java-xmx1024m-xms1024m-jar minecraft_server.jar” [12:24:27信息]:正在加载属性 [12:24:27信息]:默认游戏类型:生存 [12:2