3

我使用 redisson 3.4.4 构建了自己的自定义方法库。这在内部使用 netty-all-4.1.13.Final.jar。

当我构建我的库并尝试与一个项目一起使用时,我得到以下异常,

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)

我进一步深入研究了“netty-all-4.1.13.Final.jar”,并找到了返回类型为“io/netty/bootstrap/BootstrapConfig”的方法“io.netty.bootstrap.Bootstrap.config()”实际上是存在的。

如果它存在于我正在使用的 jar/库中,为什么我会在这里收到“方法未找到错误”?

4

2 回答 2

3

您可能已经定义了具有两个版本的同一个类;一个没有这个方法的旧版本,一个有这个方法的新类!

解决方案:您可以从包中删除包含此方法的类。如果问题仍然存在,则意味着您的项目从类中读取了另一个版本。找到旧版本并将其删除!

请不要窃取想法并重写它们,因为它们是你的

于 2017-07-28T07:17:18.470 回答
1

我修改了用于运行应用程序的类路径,在一些 jar 之前包含 netty-all-4.1.13.Final.jar,这些 jar 在内部使用了 netty 的旧版本库。

目前已解决。

于 2017-07-28T12:55:38.123 回答