Netty Nio UDT tente une erreur de don et je ne trouve pas la réponse dans les documents

StackOverflow https://stackoverflow.com/questions/19849405

  •  29-07-2022
  •  | 
  •  

Question

Désolé pour le titre peut-être mauvais, mais c'est exactement comme il est dit. Je suis nouveau dans Netty et c'est ma deuxième tentative de solution en réseau à ce que j'essaie de faire. La première solution Straight Java.nio UDP fonctionne mais est inefficace et plus lente que je ne peux supporter.

Je continue à obtenir une erreur sur le démarrage et je ne trouve pas la solution. L'erreur me dit qu'il n'y a pas de tels champs de champ dans la classe io.netty.channel.udt.nio.nioudtprovider. D'après les Javadocs, il semble que cela spécifie ce que fait le fil. Est-ce que je manque un pot? Qu'est-il arrivé? Puis-je obtenir des conseils sur la façon de résoudre ce problème?

J'utilise Netty 4.0.0.1 CR1. C'est la seule version que j'ai trouvée avec qui fonctionne avec les exemples. J'ai aussi Barchart-udt-core-2.2.0 et JSCH dans mon chemin de classe.

Le problème se produit dans la classe principale de mon serveur (non nommé Main). À la ligne suivante.

    final ThreadFactory connectionFactory=new UtilThreadFactory("connect");
    final ThreadFactory acceptFactory=new UtilThreadFactory("accept");
    final NioEventLoopGroup acceptGroup = new NioEventLoopGroup(1,acceptFactory,NioUdtProvider.MESSAGE_PROVIDER);
    final NioEventLoopGroup connectGroup=new NioEventLoopGroup(1,connectionFactory,NioUdtProvider.MESSAGE_PROVIDER);

Plus précisément, l'erreur se produit dans les deux dernières lignes.

Je reçois le code d'erreur suivant lorsque je travaille avec l'exemple MSGECHOSERVER et mon NetTyServer.

    Nov 07, 2013 5:07:53 PM netty.NettyServer main
    INFO: init
    Exception in thread "main" java.lang.NoSuchFieldError: RENDEZVOUS
      at io.netty.channel.udt.nio.NioUdtProvider.<clinit>(NioUdtProvider.java:68)
      at netty.NettyServer.run(NettyServer.java:103)
      at netty.NettyServer.main(NettyServer.java:191)

J'ai essayé de trouver un pot Netty 4x qui contient ces définitions, en particulier une version complète de netty mais obtient les mêmes erreurs ou différentes.

Mon code utilThreadFactory est ci-dessous et est à peu près le même que de http://grepcode.com/file/repo1.maven.org/maven2/io.netty/netty-example/4.0.0.cr1/io/netty/example/udt/echo/mesage/msgechoserver.java?av= F

Merci

Utilthread

    package Netty;

    import java.util.concurrent.ThreadFactory;
    import java.util.concurrent.atomic.AtomicInteger;

    public class UtilThreadFactory implements ThreadFactory{

        private static final AtomicInteger counter=new AtomicInteger();

        private final String name;

        public UtilThreadFactory(final String name)
        {
       this.name=name;
        }

        public Thread newThread(final Runnable runnable)
        {
            return new Thread(runnable,name+'-'+counter.getAndIncrement());

        }


    }

*METTRE À JOUR*J'ai mis à niveau comme demandé et j'ai exactement la même erreur. J'exécute maintenant Netty 4.0.12 avec les JARS 4.0.12 et 4.0.12-finale sur mon chemin. La même erreur se produit, que j'en ai un ou d'autres pots et j'ai effacé mon cache d'éclipse. Le même problème se produit dans les outils STS Spring. Toute aide est appréciée. Merci

Était-ce utile?

La solution

Merci pour toute l'aide. J'ai trouvé le coupable après avoir déplacé tous les pots sur mon chemin de classe et lu leur contenu. Quelque chose manquait à l'UDT-core car apparemment j'avais quelques versions plus anciennes. Je souhaite vraiment que Wildfly / The Netty Guys documenterait cela un peu mieux. J'ai téléchargé le pot Udt-Core et cela a résolu le problème. Les derniers pots sont difficiles à trouver. Ils sont à http://repo1.maven.org/maven2/com/barchart/udt/

Autres conseils

Veuillez passer à Netty 4.0.12.Final ... Votre version est assez ancienne et nous avons des exemples de travail là-dedans avec UDT.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top