2017-07-28 5 views
1

J'ai construit ma propre bibliothèque de méthodes personnalisées en utilisant Redisson 3.4.4. Ceci utilise en interne netty-all-4.1.13.Final.jar.java.lang.NoSuchMethodError: dans l'intégration redisson et netty

Quand je construis ma bibliothèque et essaie d'utiliser avec un projet que je me exception suivante,

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) 

Je ne creuser plus loin dans la « Netty-all-4.1.13.Final.jar » et capable de trouver cette méthode "io.netty.bootstrap.Bootstrap.config()" avec le type de retour "io/netty/bootstrap/BootstrapConfig" est réellement présent. Pourquoi est-ce que j'obtiens la "méthode non trouvée erreur" ici alors si son présent dans le pot/bibliothèque que j'utilise ??

+0

est la bibliothèque qui dépend de cette méthode construite * avant * l'autre? – Lino

+0

J'utilise le même netty-all-4.1.13.Final.jar pour construire/exécuter chaque projet. –

+0

Je veux dire, est-ce que la bibliothèque netty est vraiment compilée lorsque vous construisez votre projet? – Lino

Répondre

1

Je modifié mon classpath utilisé pour l'application en cours d'exécution pour inclure Netty-all-4.1.13.Final.jar avant quelques pots que je ressentais en interne en utilisant l'ancienne version de la bibliothèque de netty.

Résolu à partir de maintenant.

1

Vous avez peut-être défini la même classe avec deux versions; une ancienne version sans cette méthode, et une nouvelle classe avec cette méthode!

Solution: Vous pouvez supprimer la classe qui contient cette méthode du package. Si le problème persiste, cela signifie que votre projet lit une autre version de la classe. trouver l'ancienne version et l'enlever!

Et s'il vous plaît ne pas voler les idées et les réécrire comme ils sont à vous

+0

J'ai extrait le pot de netty que j'ai utilisé pour construire mon projet et j'ai aussi extrait le pot de netty que j'utilise pour exécuter mon projet. Les deux ont la méthode "io.netty.bootstrap.Bootstrap.config()". Toujours en cours d'exécution, je reçois cette erreur. –

+0

avant d'exécuter le projet supprimez la classe qui possède cette méthode et essayez de l'exécuter. 1- renommer le jar dans un fichier zip, 2- l'ouvrir et supprimer la classe. 3- Fermez-le et renommez-le à nouveau. Exécuter le projet – Hasan

+0

Comment puis-je supprimer la classe de la bibliothèque? Je pourrais avoir besoin de reconstruire netty dans ce cas en supprimant la classe. –