2017-07-28 9 views
1

私はredisson 3.4.4を使用して独自のカスタムメソッドライブラリを構築しました。これは内部的にnetty-all-4.1.13.Final.jarを使用します。java.lang.NoSuchMethodError:redissonとnettyの統合

私は自分のライブラリーを構築し、私は例外を以下の取得プロジェクトで

java.lang.NoSuchMethodError: io.netty.bootstrap.Bootstrap.config()Lio/netty/bootstrap/BootstrapConfig; 
at org.redisson.client.RedisClient$1$1.operationComplete(RedisClient.java:214) 
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:680) 
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:567) 
at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:406) 
at org.redisson.misc.RedissonPromise.trySuccess(RedissonPromise.java:78) 
at org.redisson.client.handler.BaseConnectionHandler.channelActive(BaseConnectionHandler.java:85) 
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:212) 
at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:198) 
at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:818) 
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:252) 
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:282) 
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528) 
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) 
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) 
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) 
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) 
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) 
at java.lang.Thread.run(Thread.java:748) 

を使用しようとすると、私はさらに「ネッティー・オール・4.1.13.Final.jar」に掘りとすることができませんでしたそのメソッド "io/netty/bootstrap/BootstrapConfig"が返される "io.netty.bootstrap.Bootstrap.config()"が実際に存在することを確認してください。

ここでjar/libraryの中に私が使っているのであれば、なぜ "方法が見つからないというエラー"が出るのですか?

+0

は、*他のものの前に構築されたメソッドに依存するライブラリですか? – Lino

+0

私はすべてのプロジェクトをビルド/実行するために同じnetty-all-4.1.13.Final.jarを使用しています。 –

+0

あなたのプロジェクトをビルドするときに本当にコンパイルされたNettyライブラリですか? – Lino

答えて

1

あるとして、それらを書き換えないでください、私は私のクラスパスは、私が感じたいくつかのjarファイルの前にネッティー-すべて-4.1.13.Final.jarが含まれるようにアプリケーションを実行するために使用される変性Nettyの古いバージョンのライブラリを内部的に使用しています。

解決済み

1

同じクラスを2つのバージョンで定義している場合があります。このメソッドを持たない古いバージョンと、このメソッドを使った新しいクラスです。

解決方法:パッケージからこのメソッドを含むクラスを削除できます。問題が解決しない場合は、プロジェクトがクラスから別のバージョンを読み込むことを意味します。古いバージョンを見つけて削除してください!

やアイデアを盗み、彼らはあなた

+0

私は自分のプロジェクトをビルドするために使用したnetty jarを抽出しました。また、プロジェクトの実行に使用するnetty jarも抽出しました。どちらもメソッド "io.netty.bootstrap.Bootstrap.config()"を持っています。実行中にこのエラーが発生しています。 –

+0

プロジェクトを実行する前に、このメソッドを持つクラスを削除し、それを実行しようとします。 jarファイルの名前をzipファイルに変更し、開くとクラスを削除します。 3それを閉じて、再度それをjarに名前を変更します。プロジェクトを実行します – Hasan

+0

ライブラリからクラスを削除するにはどうすればよいですか?その場合、クラスを削除してネットを再構築する必要があるかもしれません。 –