Domanda

Ci scusiamo per il titolo forse negativo, ma è esattamente come dice. Sono nuovo a Netty e questo è il mio secondo tentativo di una soluzione in rete a ciò che sto cercando di fare. La prima soluzione Java.NIO UDP funziona ma è inefficiente e più lenta di quanto io possa sopportare.

Continuo a ricevere un errore all'avvio e non riesco a trovare la soluzione. L'errore mi dice che non esiste un tale campo di campo nella classe io.netty.channel.udt.nio.nioudtProvider. Dai Javadocs sembra che questo specifichi ciò che fa il thread. Mi manca un barattolo? Quello che è successo? Posso ottenere suggerimenti su come risolverlo?

Sto usando Netty 4.0.0.1 CR1. È l'unica versione che ho trovato con che funziona con gli esempi. Ho anche Barchart-Udt-core-2.2.0 e JSCH nel mio percorso di classe.

Il problema si sta verificando nella classe principale del mio server (non denominata Main). Alla riga seguente.

    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);

Più specificamente, l'errore si verifica nelle ultime due righe.

Ricevo il seguente codice di errore quando lavoro sia con l'esempio di msgechoserver che con il mio 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)

Ho provato a trovare un barattolo Netty 4x che contiene queste definizioni, in particolare una versione a netto completa ma ottengo gli stessi o diversi errori.

Il mio codice utilThreadFactory è sotto ed è praticamente lo stesso di http://grepcode.com/file/repo1.maven.org/maven2/io.netty/netty-example/4.0.0.0.cr1/io/netty/example/udt/echo/message/msgechoserver.java?av= f

Grazie

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());

        }


    }

*AGGIORNARE*Ho aggiornato come richiesto e ho ottenuto lo stesso identico errore. Ora sto eseguendo Netty 4.0.12 con i barattoli 4.0.12 e 4.0.12-finale nel mio percorso. Lo stesso errore si verifica se ho uno o altri barattoli e ho cancellato la mia cache di eclissi. Lo stesso problema si verifica negli strumenti STS Spring. Qualsiasi aiuto è apprezzato. Grazie

È stato utile?

Soluzione

Grazie per tutto l'aiuto. Ho trovato il colpevole dopo aver spostato tutti i barattoli sul mio percorso di classe e aver letto il loro contenuto. Mancava qualcosa dall'UDT-core come apparentemente avevo alcune versioni precedenti. Vorrei davvero che Wildfly/The Netty Guys lo documentasse un po 'meglio. Ho scaricato il vaso UDT-Core e questo ha risolto il problema. Gli ultimi barattoli sono difficili da trovare. Sono a http://repo1.maven.org/maven2/com/barchart/udt/

Altri suggerimenti

Aggiorna a Netty 4.0.12.Final ... La tua versione è piuttosto vecchia e abbiamo esempi di lavoro lì con UDT.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top