2017-11-12 10 views
0

ライブラリを作成してjarファイルとして公開しました。 。他のアプリケーションでは私のライブラリを使用していました。java.lang.NoSuchMethodError:org.jboss.netty.handler.codec.http.HttpRequest.setHeader(Ljava/lang/String; Ljava/lang/Object;)V

他のアプリケーションは、依存関係をアップグレードしました。そして今、彼らが走るとき。私のライブラリを呼び出すとアプリケーションがクラッシュします。今のアプリケーションはnetty 4.1.8に依存しているようですが、私のライブラリは古いバージョンを使用していた第三者のライブラリに依存していました。今度は他のアプリケーションをビルドするときに、sbtは新しいバージョンのNettyバージョンを削除します。新しいNettyバージョンには、自分のコードが依存するメソッドはありません。

このように例外

org.jboss.netty.handler.codec.http.HttpRequest.setHeader(Ljava/lang/String;Ljava/lang/Object;)V" 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.construct(NettyAsyncHttpProvider.java:693) 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.buildRequest(NettyAsyncHttpProvider.java:650) 
com.ning.http.client.providers.netty.NettyConnectListener$Builder.build(NettyConnectListener.java:144) 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.doConnect(NettyAsyncHttpProvider.java:1070) 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute(NettyAsyncHttpProvider.java:935) 
com.ning.http.client.AsyncHttpClient.executeRequest(AsyncHttpClient.java:499) 
dispatch.HttpExecutor$class.apply(execution.scala:47) 
dispatch.Http.apply(execution.scala:12) 
dispatch.HttpExecutor$class.apply(execution.scala:42) 
dispatch.Http.apply(execution.scala:12) 
scalaxb.DispatchHttpClients$DispatchHttpClient$class.request(httpclients_dispatch.scala:21) 
scalaxb.DispatchHttpClients$$anon$1.request(httpclients_dispatch.scala:6) 
scalaxb.SoapClients$SoapClient$class.soapRequest(soap12.scala:41) 
scalaxb.SoapClients$$anon$1.soapRequest(soap12.scala:23) scalaxb.SoapClients$SoapClient$class.requestResponse(soap12.scala:60) 
scalaxb.SoapClients$$anon$1.requestResponse(soap12.scala:23) 

私はすでに古いネッティーに依存してサードパーティのライブラリ(scalaxb)の最新バージョンを使用しています。

私のライブラリがアプリケーションのアップグレードプロセス全体を保持しているため、これは実際には致命的です。

+0

おそらく、古いバージョンの依存関係、https://github.com/sbt/sbt-assembly#shading –

答えて

1

あなたのライブラリを使用している特定のバージョンのNettyが必要であり、新しいバージョンとの互換性がないことをアプリケーションの保守担当者に伝えるのとは別に、これに関することはあまりありません。彼らはあなたにダウングレードするか、ライブラリを何か他のものに置き換える必要があります。

関連する問題