Netty NIO Udt Попытка выдачи ошибки, и я не могу найти ответ в Документах
Извините за возможно плохое название, но это именно так, как он говорит. Я новичок в Netty, и это моя вторая попытка сетевого решения того, что я пытаюсь сделать. Первое решение прямой java.nio UDP работает, но неэффективно и медленнее, чем я могу выдержать.
Я получаю сообщение об ошибке при запуске и не могу найти решение. Ошибка говорит мне, что нет такого поля Rendezvous в классе io.netty.channel.udt.nio.NioUdtProvider. Из 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)
Я попытался найти jar-файл netty 4x, который содержит эти определения, в частности, полный выпуск 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
Спасибо
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());
}
}
*ОБНОВЛЕНИЕ* Я обновил как запрошенный и получаю ту же самую ошибку. Сейчас я использую Netty 4.0.12 с jars 4.0.12 и 4.0.12-FINAL на моем пути. Такая же ошибка возникает, если у меня есть один или другие банки, и я очистил свой кэш затмения. Та же проблема возникает в пружинных инструментах STS. Любая помощь приветствуется. Спасибо
2 ответа
Спасибо за помощь. Я нашел виновника, переместив все банки в мой путь к классу и прочитав их содержимое. Чего-то не хватало в ядре udt, так как, очевидно, у меня было несколько старых версий. Я действительно хотел бы, чтобы Wildfly / Netty Парни документировали это немного лучше. Я скачал UDT-Core JAR, и это решило проблему. Последние банки трудно найти. Они находятся по адресу http://repo1.maven.org/maven2/com/barchart/udt/
Пожалуйста, обновитесь до netty 4.0.12. Наконец... Ваша версия довольно старая, и у нас есть рабочие примеры с UDT.