2017-07-28 4 views
1

Ich habe meine eigene Bibliothek von benutzerdefinierten Methoden mit Redisson 3.4.4 gebaut. Dies verwendet intern netty-all-4.1.13.Final.jar.java.lang.NoSuchMethodError: in redisson und netty Integration

Wenn ich meine Bibliothek aufbauen und versuchen, mit einem Projekt verwenden ich folgenden Ausnahme erhalten,

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) 

ich weiter in habe zu graben die „netty-all-4.1.13.Final.jar“ und in der Lage finde die Methode "io.netty.bootstrap.Bootstrap.config()" mit dem Rückgabetyp "io/netty/bootstrap/BootstrapConfig" ist tatsächlich vorhanden.

Warum bekomme ich "Methode nicht gefunden Fehler" hier, wenn es in jar/Bibliothek, die ich verwende ??

+0

ist die Bibliothek, die auf dieser Methode * vor * der anderen gebaut hängt? – Lino

+0

Ich benutze die gleiche netty-all-4.1.13.Final.jar zum Erstellen/Ausführen jedes Projekts. –

+0

Ich meine, ist die Netty-Bibliothek wirklich kompiliert, wenn Sie Ihr Projekt erstellen? – Lino

Antwort

1

Ich veränderte meine Classpath für laufende Anwendung verwendet netty-all-4.1.13.Final.jar vor einigen Gläsern aufzunehmen, die ich fühlte, intern Nettys ältere Versionsbibliothek verwenden.

Gelöst von jetzt an.

1

Möglicherweise haben Sie dieselbe Klasse mit zwei Versionen definiert; eine alte Version ohne diese Methode und eine neue Klasse mit dieser Methode!

Lösung: Sie können die Klasse, die diese Methode enthält, aus dem Paket entfernen. Wenn das Problem weiterhin besteht, bedeutet dies, dass Ihr Projekt eine andere Version aus der Klasse liest. finde die alte Version und entferne sie!

Und bitte nicht stehlen die Ideen und schreiben sie, wie sie sind dein

+0

Ich habe das netty Glas extrahiert, das ich für das Errichten meines Projektes verwendete und auch das netty Glas herausholte, das ich verwende, um mein Projekt laufen zu lassen. Beide haben die Methode "io.netty.bootstrap.Bootstrap.config()". Trotzdem bekomme ich diesen Fehler. –

+0

bevor Sie das Projekt ausführen, entfernen Sie die Klasse mit dieser Methode und versuchen Sie sie auszuführen. 1- Benennen Sie das Jar in eine Zip-Datei um, 2- öffnen Sie es und entfernen Sie die Klasse. 3- Schließen Sie es und benennen Sie es erneut in jar um. Führen Sie das Projekt – Hasan

+0

Wie kann ich die Klasse aus der Bibliothek entfernen? Ich muss netty in diesem Fall vielleicht neu aufbauen, indem ich Klasse entferne. –

Verwandte Themen