Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 驼峰网络组件:未能创建选择器_Java_Sockets_Apache Camel_Netty_Nosuchmethoderror - Fatal编程技术网

Java 驼峰网络组件:未能创建选择器

Java 驼峰网络组件:未能创建选择器,java,sockets,apache-camel,netty,nosuchmethoderror,Java,Sockets,Apache Camel,Netty,Nosuchmethoderror,我试图使用netty从tcp套接字中消耗字节。我正在使用ApacheCamel 2.12.1、SpringDSL和Windows。我的路线很简单: <camelContext xmlns="http://camel.apache.org/schema/spring" autoStartup="true"> <route id="my-route"> <from uri="netty:tcp://127.0.0.1:4102?sync=true

我试图使用netty从tcp套接字中消耗字节。我正在使用ApacheCamel 2.12.1、SpringDSL和Windows。我的路线很简单:

<camelContext xmlns="http://camel.apache.org/schema/spring" autoStartup="true">
    <route id="my-route">
        <from uri="netty:tcp://127.0.0.1:4102?sync=true&amp;textline=true" />
        <convertBodyTo type="java.lang.String" />
        <to uri="file:./data" />
    </route>
</camelContext>

我在启动路线时遇到此异常:

2013-11-15 19:33:23,749 ERROR [Thread-5] - org.jboss.netty.channel.ChannelException: Failed to create a selector.
org.apache.camel.RuntimeCamelException: org.jboss.netty.channel.ChannelException: Failed to create a selector.
    at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1344) ~[camel-core-2.12.1.jar:2.12.1]
    at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:120) ~[camel-spring-2.12.1.jar:2.12.1]
    at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:301) ~[camel-spring-2.12.1.jar:2.12.1]
    ...
    at java.lang.Thread.run(Thread.java:724) [?:1.7.0_40]
Caused by: org.jboss.netty.channel.ChannelException: Failed to create a selector.
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.openSelector(AbstractNioSelector.java:337) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.<init>(AbstractNioSelector.java:95) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBoss.<init>(NioServerBoss.java:49) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:55) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:26) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.AbstractNioBossPool.init(AbstractNioBossPool.java:65) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBossPool.<init>(NioServerBossPool.java:40) ~[netty-3.7.0.Final.jar:?]
    at org.apache.camel.component.netty.NettyServerBossPoolBuilder.build(NettyServerBossPoolBuilder.java:65) ~[camel-netty-2.12.1.jar:2.12.1]
    at org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.startServerBootstrap(SingleTCPNettyServerBootstrapFactory.java:132) ~[camel-netty-2.12.1.jar:2.12.1]
    at org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.doStart(SingleTCPNettyServerBootstrapFactory.java:93) ~[camel-netty-2.12.1.jar:2.12.1]
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) ~[camel-core-2.12.1.jar:2.12.1]
    ... 100 more
Caused by: java.lang.NoSuchMethodError: org.jboss.netty.channel.socket.nio.SelectorUtil.open()Ljava/nio/channels/Selector;
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.openSelector(AbstractNioSelector.java:335) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.<init>(AbstractNioSelector.java:95) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBoss.<init>(NioServerBoss.java:49) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:55) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:26) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.AbstractNioBossPool.init(AbstractNioBossPool.java:65) ~[netty-3.7.0.Final.jar:?]
    at org.jboss.netty.channel.socket.nio.NioServerBossPool.<init>(NioServerBossPool.java:40) ~[netty-3.7.0.Final.jar:?]
    at org.apache.camel.component.netty.NettyServerBossPoolBuilder.build(NettyServerBossPoolBuilder.java:65) ~[camel-netty-2.12.1.jar:2.12.1]
    at org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.startServerBootstrap(SingleTCPNettyServerBootstrapFactory.java:132) ~[camel-netty-2.12.1.jar:2.12.1]
    at org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.doStart(SingleTCPNettyServerBootstrapFactory.java:93) ~[camel-netty-2.12.1.jar:2.12.1]
    ... 20 more
2013-11-15 19:33:23749错误[Thread-5]-org.jboss.netty.channel.ChannelException:未能创建选择器。
org.apache.camel.runtimecameleexception:org.jboss.netty.channel.ChannelException:未能创建选择器。
在org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1344)~[camel-core-2.12.1.jar:2.12.1]
在org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:120)~[camel-spring-2.12.1.jar:2.12.1]
在org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:301)~[camel-spring-2.12.1.jar:2.12.1]
...
在java.lang.Thread.run(Thread.java:724)[?:1.7.0_40]
原因:org.jboss.netty.channel.ChannelException:未能创建选择器。
在org.jboss.netty.channel.socket.nio.AbstractNioSelector.openSelector(AbstractNioSelector.java:337)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.AbstractNioSelector.(AbstractNioSelector.java:95)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBoss.(NioServerBoss.java:49)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:55)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:26)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.AbstractNioBossPool.init(AbstractNioBossPool.java:65)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBossPool.(NioServerBossPool.java:40)~[netty-3.7.0.Final.jar:?]
在org.apache.camel.component.netty.NettyServerBossPoolBuilder.build(NettyServerBossPoolBuilder.java:65)~[camel-netty-2.12.1.jar:2.12.1]
在org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.startServerBootstrap(SingleTCPNettyServerBootstrapFactory.java:132)~[camel-netty-2.12.1.jar:2.12.1]
在org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.doStart(SingleTCPNettyServerBootstrapFactory.java:93)~[camel-netty-2.12.1.jar:2.12.1]
在org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)~[camel-core-2.12.1.jar:2.12.1]
... 100多
原因:java.lang.NoSuchMethodError:org.jboss.netty.channel.socket.nio.SelectorUtil.open()Ljava/nio/channels/Selector;
在org.jboss.netty.channel.socket.nio.AbstractNioSelector.openSelector(AbstractNioSelector.java:335)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.AbstractNioSelector.(AbstractNioSelector.java:95)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBoss.(NioServerBoss.java:49)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:55)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBossPool.newBoss(NioServerBossPool.java:26)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.AbstractNioBossPool.init(AbstractNioBossPool.java:65)~[netty-3.7.0.Final.jar:?]
在org.jboss.netty.channel.socket.nio.NioServerBossPool.(NioServerBossPool.java:40)~[netty-3.7.0.Final.jar:?]
在org.apache.camel.component.netty.NettyServerBossPoolBuilder.build(NettyServerBossPoolBuilder.java:65)~[camel-netty-2.12.1.jar:2.12.1]
在org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.startServerBootstrap(SingleTCPNettyServerBootstrapFactory.java:132)~[camel-netty-2.12.1.jar:2.12.1]
在org.apache.camel.component.netty.SingleTCPNettyServerBootstrapFactory.doStart(SingleTCPNettyServerBootstrapFactory.java:93)~[camel-netty-2.12.1.jar:2.12.1]
... 20多

有没有关于它还没有开始的想法?谢谢

NoSuchMethodError
通常是由于
类路径上有不兼容的jar(太旧或太新)造成的


(我偶尔发现免费的JBoss Tattletale对于识别挂在我的
类路径上的类或jar的旧副本很有用。但是,这里可能没有复制的问题。)

我不确定它是否与java.lang.NoSuchMethodError有关:org.JBoss.netty.channel.socket.nio.SelectorUtil.open()Ljava/nio/channels/Selector;是的。NoSuchMethodError总是由不兼容的jar引起的。如果你不相信我,谷歌一下。我发现了问题所在。Camel Zookeeper和Camel Netty包含了Netty库的不同版本,api中似乎有变化,Camel正在寻找一种根本不存在的方法。因此,最后它是一个不兼容的jarI将检查我们是否可以让骆驼动物园管理员和骆驼netty使用相同版本的netty。我刚刚在camel中填充了一个JIRA并为其应用了补丁。