Pergunta

Desculpe pelo título possivelmente ruim, mas é exatamente como diz. Sou novo na Netty e esta é minha segunda tentativa de uma solução em rede para o que estou tentando fazer. A primeira solução Java Straight Java.nio UDP funciona, mas é ineficiente e mais lento do que eu posso suportar.

Eu continuo recebendo um erro no início e não consigo encontrar a solução. O erro me diz que não existe um encontro de campo na classe io.netty.channel.udt.nio.nioudtprovider. A partir dos javadocs, parece que isso especifica o que o thread faz. Estou perdendo uma jarra? O que aconteceu? Posso obter alguma dica sobre como resolver isso?

Estou usando o Netty 4.0.0.1 CR1. É o único lançamento que encontrei com os exemplos. Eu também tenho barchart-udt-core-2.2.0 e JSCH no meu caminho de classe.

O problema está ocorrendo na classe principal do meu servidor (não nomeado principal). Na linha a seguir.

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

Mais especificamente, o erro ocorre nas duas últimas linhas.

Recebo o seguinte código de erro ao trabalhar com o exemplo do MsGechoserver e meu 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)

Tentei encontrar um frasco de 4x que contém essas definições, especificamente uma versão completa da rede, mas obtenha os mesmos erros ou diferentes erros.

Meu código UtilThreadFactory está abaixo e é praticamente o mesmo 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

Obrigado

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

        }


    }

*ATUALIZAR*Atualizei como solicitado e recebo exatamente o mesmo erro. Agora estou executando o Netty 4.0.12 com os frascos 4.0.12 e 4.0.12-final no meu caminho. O mesmo erro ocorre se eu tenho um ou outros frascos e limpei meu cache do Eclipse. O mesmo problema acontece nas ferramentas de primavera do STS. Qualquer ajuda é apreciada. Obrigado

Foi útil?

Solução

Obrigado por toda a ajuda. Encontrei o culpado depois de mover todos os frascos para o meu caminho de classe e ler o conteúdo deles. Algo estava faltando no núcleo UDT, como aparentemente eu tinha algumas versões mais antigas. Eu realmente gostaria que os caras da Wildfly/The Netty documentassem isso um pouco melhor. Eu baixei o frasco UDT-Core e isso resolveu o problema. Os frascos mais recentes são difíceis de encontrar. Eles estão no http://repo1.maven.org/maven2/com/barchart/udt/

Outras dicas

Atualize para a Netty 4.0.12.Final ... Sua versão é bastante antiga e temos exemplos de trabalho lá com a UDT.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top