Java REST API抛出错误“;org.glassfish.jersey.server.ContainerException:java.lang.NoSuchFieldError:ACCEPT“不区分大小写”属性;

Java REST API抛出错误“;org.glassfish.jersey.server.ContainerException:java.lang.NoSuchFieldError:ACCEPT“不区分大小写”属性;,java,gwt,jackson,glassfish,Java,Gwt,Jackson,Glassfish,在新安装的Debian 9机器上运行的Java后端不再正常工作。某些调用正在工作,其他调用失败,并出现此错误堆栈: org.glassfish.jersey.server.ContainerException:java.lang.NoSuchFieldError:ACCEPT\u CASE\u Responsible\u属性 位于org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278

在新安装的Debian 9机器上运行的Java后端不再正常工作。某些调用正在工作,其他调用失败,并出现此错误堆栈:

org.glassfish.jersey.server.ContainerException:java.lang.NoSuchFieldError:ACCEPT\u CASE\u Responsible\u属性 位于org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278) 位于org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:260) 位于org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509) 位于org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) 位于org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 位于org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 位于org.glassfish.jersey.internal.Errors.process(Errors.java:315) 位于org.glassfish.jersey.internal.Errors.process(Errors.java:297) 位于org.glassfish.jersey.internal.Errors.process(Errors.java:267) 位于org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) 位于org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) 位于org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) 位于org.glassfish.jersey.servlet.WebComponent.serviceinpl(WebComponent.java:473) 位于org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) 位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) 位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) 位于org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) 位于org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) 位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) 位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) 位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 位于org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:68) 位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 位于org.eclipse.jetty.server.server.handle(server.java:370) 位于org.eclipse.jetty.server.AbstractHttpConnection.HandlerRequest(AbstractHttpConnection.java:489) 位于org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960) 位于org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021) http.HttpParser.parseNext(HttpParser.java:865) http.HttpParser.parseAvailable(HttpParser.java:240) 位于org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 位于org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 位于org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) 位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 运行(Thread.java:748)

它没有给我一个提示,在我的代码中,在其他机器上,在相同的导入下,这正在发生

与项目正常运行的服务器相比,我在使用的库中找不到任何差异。服务器和我的机器上也使用相同的java版本


有人有什么想法吗?谢谢

这很可能是一个类路径问题,Glassfish不知何故选择了旧版本的Jackson。该字段是在Jackson 2.5中引入的,因此请在类路径中查找早期版本


通过查找实现接口的类(例如,
ObjectMapper
),尝试记录Jackson版本。这应该告诉你类路径理论是否成立。

嗨,亨里克,谢谢你的回答。我从项目中删除了jackson的所有依赖项,仍然出现相同的错误,jackson的版本是2.8.7,项目中没有任何jackson LIB。。。同样的项目可以在Windows dev Machines和linux服务器上运行,只是不能在我的Debian PC上运行。还有其他想法吗?我已经尝试过使用不同版本的eclipse,但没有任何帮助…也许是中提到的东西?我最终解决了这个问题,但不是100%确定问题出在哪里。我删除了所有的jersey和jackson Lib,并一个接一个地读了一遍。没有添加
jackson核心
jackson数据绑定
libs,现在工作正常。。。thanks@newnoise:好的。很高兴听到。我的猜测是,在您重新添加的过程中,类路径上罐子的顺序发生了变化,现在您有了最新版本的Jackson“在前面”。