Pregunta

Perdón por el título posiblemente malo, pero es exactamente como dice. Soy nuevo en Netty y este es mi segundo intento de una solución en red para lo que estoy tratando de hacer. La primera solución recta Java.nio UDP funciona, pero es ineficiente y más lenta de lo que puedo soportar.

Sigo recibiendo un error al inicio y no puedo encontrar la solución. El error me dice que no existe tal campo en la clase io.netty.channel.udt.nio.nioudtprovider. De los Javadocs parece que esto especifica lo que hace el hilo. ¿Me estoy perdiendo un frasco? ¿Qué sucedió? ¿Puedo obtener algunos consejos sobre cómo resolver esto?

Estoy usando Netty 4.0.0.1 CR1. Es el único lanzamiento que encontré que funciona con los ejemplos. También tengo barchart-udt-core-2.2.0 y JSCH en mi classpath.

El problema está ocurriendo en la clase principal de mi servidor (no se llama Main). En la siguiente línea.

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

Más específicamente, el error ocurre en las últimas dos líneas.

Recibo el siguiente código de error cuando trabajo con el ejemplo de msgechoserver y mi 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)

He tratado de encontrar un frasco 4X Netty que contenga estas definiciones, específicamente una liberación completa de Netty pero obtenga los mismos errores o diferentes.

Mi código de UtilThreadFactory está a continuación y es más o menos lo mismo que de http://grepcode.com/file/repo1.maven.org/maven2/io.netty/netty-example/4.0.0.cr1/io/netty/example/udt/echo/message/msgechoserver.java?av= F

Gracias

Utilizado

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

        }


    }

*ACTUALIZAR*Actualicé como solicitado y obtuve exactamente el mismo error. Ahora estoy ejecutando Netty 4.0.12 con los frascos 4.0.12 y 4.0.12-final en mi camino. El mismo error ocurre si tengo uno u otros frascos y borra mi caché de eclipse. El mismo problema ocurre en las herramientas STS Spring. Se agradece cualquier ayuda. Gracias

¿Fue útil?

Solución

Gracias por toda la ayuda. Encontré al culpable después de trasladar todos los frascos a mi classpath y leer sus contenidos. Faltaba algo en el Core UDT, ya que aparentemente tenía algunas versiones más antiguas. Realmente deseo que Wildfly/The Netty Guys documenten esto un poco mejor. Descargué el frasco UDT-Core y esto resolvió el problema. Los últimos frascos son difíciles de encontrar. Están en http://repo1.maven.org/maven2/com/barchart/udt/

Otros consejos

Actualice a Netty 4.0.12.Final ... su versión es bastante antigua y tenemos ejemplos de trabajo allí con UDT.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top