2017-11-22 40 views
1

新しく設定されたDebian 9マシンで実行されているJavaバックエンドが正常に動作しなくなりました。作業しているいくつかの呼び出しは、他の人がこのエラー・スタックで失敗:Java REST APIで「org.glassfish.jersey.server.ContainerException:java.lang.NoSuchFieldError:ACCEPT_CASE_INSENSITIVE_PROPERTIES」というエラーがスローされる

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

は、これが働いているのと同じインポートして、私に私のコードでは、これは他のmaschinesに、起こっている一つのヒントを与えるものではありません。

プロジェクトが正常に動作しているサーバーと比較して、使用されているライブラリに違いはありません。また、サーバーとマシン上で同じjavaバージョンが使用されています。

誰でもアイデアがありますか?ありがとう!

答えて

1

グラスフィッシュが古いバージョンのジャクソンをどうにかして拾うのは、おそらくクラスパスの問題です。 ACCEPT_CASE_INSENSITIVE_PROPERTIES フィールドはJackson 2.5で導入されました。そのため、クラスパスで以前のバージョンを探します。

Versionedインターフェイス(例:ObjectMapper)を実装するクラスを見つけることで、ジャクソンバージョンのログ記録を試してください。クラスパス理論が成立しているかどうかは分かります。

+0

こんにちはHenrik、あなたの答えに感謝します。私はプロジェクトからjacksonのすべての依存関係を削除しましたが、同じエラーが発生します。jacksonのバージョンは2.8.7で、プロジェクトにJackson-libsはありません。 同じプロジェクトはWindowsのdevマシンとLinuxサーバーで動作し、私のDebian PCではなく – newnoise

+0

他のアイデアですか?私はすでにEclipseの別のバージョンを使ってみましたが、何も助けてくれません... – newnoise

+0

おそらく[この質問](https://stackoverflow.com/q/35769351/13075)に記載されているものはありますか? – Henrik

関連する問題