抱歉标题可能不好,但正如它所说的那样。我是 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());
}
}
*更新* 我按要求升级并得到完全相同的错误。我现在在我的路径中运行带有 jars 4.0.12 和 4.0.12-FINAL 的 Netty 4.0.12。无论我有一个或其他 jar 并且我清除了我的 eclipse 缓存,都会发生同样的错误。同样的问题也发生在 STS 弹簧工具中。任何帮助表示赞赏。谢谢