【问题标题】:Netty NIO Udt Attempt Giving Error and I cannot find the answer in the DocsNetty NIO Udt 尝试给出错误,我在文档中找不到答案
【发布时间】:2013-11-11 08:36:06
【问题描述】:

抱歉,标题可能很糟糕,但正如它所说的那样。我是 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 弹簧工具中。任何帮助表示赞赏。谢谢

【问题讨论】:

    标签: java netty udp-data-transfer


    【解决方案1】:

    感谢大家的帮助。在将所有 jar 移动到我的类路径并阅读它们的内容后,我找到了罪魁祸首。 udt-core 缺少一些东西,因为显然我有几个旧版本。我真的希望 wildfly/netty 的家伙能更好地记录这一点。我下载了 udt-core jar,这解决了问题。最新的罐子很难找到。他们在http://repo1.maven.org/maven2/com/barchart/udt/

    【讨论】:

    • 嗨 - 我正在使用 netty-all 5.0.0.Alpha1,我遇到了同样的错误。我选择通过 MVN 构建 netty-all jar 文件,我看到了同样的问题。有什么建议吗?
    • 我希望这不会被标记,这个错误专门来自 barchart-udt-core。它是一个单独的 jar,必须下载并放置在您的类路径中。你试过这样做吗?此外,Norman Maurer 帮助编写了他的个人资料如下所示的程序。
    • 谢谢 - 事实证明 Netty 5.0.0.Alpha1 附带的示例已经过时。当我从这里使用当前示例时,工作正常:github.com/netty/netty/tree/master/example/src/main/java/io/…
    【解决方案2】:

    请升级到 netty 4.0.12.Final ...您的版本已经很旧了,我们有 UDT 的工作示例。

    【讨论】:

    • 好的,我已经升级了,即使使用示例代码也会出现同样的错误。我也清除了我的 eclipse 缓存。 IDE 和 Netty 有问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2021-05-15
    • 1970-01-01
    • 2021-03-04
    • 2014-11-19
    • 2020-02-16
    相关资源
    最近更新 更多