Попытка Netty NIO Udt Выдает ошибку, и я не могу найти ответ в документах

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

  •  29-07-2022
  •  | 
  •  

Вопрос

Извините за, возможно, плохое название, но это именно то, что там написано.Я новичок в Netty, и это моя вторая попытка найти сетевое решение для того, что я пытаюсь сделать.Первое решение для java.nio UDP работает, но неэффективно и медленнее, чем я могу выдержать.

Я продолжаю получать сообщение об ошибке при запуске и не могу найти решение.Ошибка сообщает мне, что в классе io.netty.channel.udt.nio.NioUdtProvider нет такого поля Rendezvous.Из javadocs кажется, что это определяет, что делает поток.Мне не хватает банки?Что случилось?Могу ли я получить какие-либо указания о том, как это решить?

Я использую Netty 4.0.0.1 CR1.Это единственный релиз, который я нашел, который работает с примерами.У меня также есть barchart-udt-core-2.2.0 и jsch в моем пути к классам.

Проблема возникает в основном классе моего сервера (не названном main).В следующей строке.

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

Более конкретно, ошибка возникает в последних двух строках.

Я получаю следующий код ошибки при работе как с примером MsgEchoServer, так и с моим 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)

Я пытался найти netty 4x jar, который содержит эти определения, в частности, полную версию Netty, но получаю те же или другие ошибки.

Мой код UtilThreadFactory приведен ниже и практически такой же, как из 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

Спасибо

Утилизационный поток

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

        }


    }

*Обновить* Я обновился, как и было запрошено, и получаю точно такую же ошибку.Сейчас я запускаю Netty 4.0.12 с банками 4.0.12 и 4.0.12-FINAL на моем пути.Та же ошибка возникает независимо от того, есть ли у меня одна или другие банки и я очистил свой кэш eclipse.Та же проблема возникает и в инструментах STS spring tools.Любая помощь приветствуется.Спасибо

Это было полезно?

Решение

Спасибо за всю помощь.Я нашел виновника, переместив все банки в свой classpath и прочитав их содержимое.Чего-то не хватало в udt-ядре, поскольку, очевидно, у меня было несколько более старых версий.Я действительно хотел бы, чтобы ребята из wildfly / the netty задокументировали это немного лучше.Я скачал udt-core jar, и это решило проблему.Самые свежие банки трудно найти.Они находятся в http://repo1.maven.org/maven2/com/barchart/udt/

Другие советы

Пожалуйста, обновите netty до версии 4.0.12.Final...Ваша версия довольно старая, и у нас там есть рабочие примеры с UDT.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top