Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 使用ApacheCamel和Netty重定向tcp消息,无需转换_Java_Apache Camel_Netty - Fatal编程技术网

Java 使用ApacheCamel和Netty重定向tcp消息,无需转换

Java 使用ApacheCamel和Netty重定向tcp消息,无需转换,java,apache-camel,netty,Java,Apache Camel,Netty,我可以单独使用Netty将TCP消息从一个端口重定向到另一个端口。我被引导通过这个网站>>。现在我想用ApacheCamel和Netty做同样的事情。但当我重定向到第二个端口时,参数上似乎缺少一些配置。我的路由器如下所示。当我尝试从端口3260连接iscsi启动器(客户端)时,端口3261处的目标(服务器)正在侦听,但它没有正确响应。有人对我应该使用什么参数有任何提示吗。我已经尝试了无参数或仅sync=true/false,但没有成功。我相信有一些事情是不能弄乱tcp消息的 package or

我可以单独使用Netty将TCP消息从一个端口重定向到另一个端口。我被引导通过这个网站>>。现在我想用ApacheCamel和Netty做同样的事情。但当我重定向到第二个端口时,参数上似乎缺少一些配置。我的路由器如下所示。当我尝试从端口3260连接iscsi启动器(客户端)时,端口3261处的目标(服务器)正在侦听,但它没有正确响应。有人对我应该使用什么参数有任何提示吗。我已经尝试了无参数或仅sync=true/false,但没有成功。我相信有一些事情是不能弄乱tcp消息的

package org.camel.netty.first.server;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.spring.Main;

public class ServerRouter extends RouteBuilder {

    public static void main(String[] args) throws Exception {
        Main main = new Main();
        main.setApplicationContextUri("META-INF/spring/app-context.xml");
        main.run(args);
    }

    @Override
    public void configure() throws Exception {
        from("netty:tcp://localhost:3260?sync=false&allowDefaultCodec=false&encoder=#stringEncoder&decoder=#stringDecoder")
                .to("netty:tcp://localhost:3261?sync=false&allowDefaultCodec=false&encoder=#stringEncoder&decoder=#stringDecoder");
    }
}
使用netty4。从(“netty4:tcp://localhost:3260?sync=true&allowDefaultCodec=false)至(“净额4:tcp://localhost:3261?sync=true&allowDefaultCodec=false"); 似乎有必要创建一个安全池

WARNING: Failed to release a message: SimpleLeakAwareByteBuf(UnpooledUnsafeDirectByteBuf(freed))
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
    at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
    at io.netty.buffer.WrappedByteBuf.release(WrappedByteBuf.java:820)
    at io.netty.buffer.SimpleLeakAwareByteBuf.release(SimpleLeakAwareByteBuf.java:34)
    at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:59)
    at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:84)
    at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:276)
    at io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:473)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:709)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:315)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:676)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1059)
    at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:688)
    at io.netty.channel.AbstractChannelHandlerContext.access$1600(AbstractChannelHandlerContext.java:32)
    at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:992)
    at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:924)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
    at java.lang.Thread.run(Thread.java:745)

Apr 04, 2016 2:59:15 PM io.netty.util.ReferenceCountUtil safeRelease
WARNING: Failed to release a message: UnpooledUnsafeDirectByteBuf(freed)
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
    at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
    at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:59)
    at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:84)
    at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:276)
    at io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:473)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:709)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:315)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:676)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1059)
    at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:688)
    at io.netty.channel.AbstractChannelHandlerContext.access$1600(AbstractChannelHandlerContext.java:32)
    at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:992)
    at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:924)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
    at java.lang.Thread.run(Thread.java:745)

并非所有http通信都是严格的,请详细说明“未正确响应”。是否有错误或只是意外的响应?另外,尝试在中间插入一个显示消息的路由步骤,以确保它是您所期望的。最后,试着使用Netty4:我试着使用Netty4。看来我必须创建一个安全池。你能让这个设置正常工作吗?并不是所有的http通信都是严格的。请详细说明“没有正确响应”。是否有错误或只是意外的响应?另外,尝试在中间插入一个显示消息的路由步骤,以确保它是您所期望的。最后,试着使用Netty4:我试着使用Netty4。看来我必须创建一个安全池。你能让这个设置正常工作吗?