Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
如何将接收到服务器的消息转发到Netty(Java)中的另一台服务器?_Java_Jboss_Connection_Netty_Nio - Fatal编程技术网

如何将接收到服务器的消息转发到Netty(Java)中的另一台服务器?

如何将接收到服务器的消息转发到Netty(Java)中的另一台服务器?,java,jboss,connection,netty,nio,Java,Jboss,Connection,Netty,Nio,我有一些客户端,它们与一台服务器通信,我需要该服务器将消息转发到另一台服务器。然后,从第二台服务器接收消息并发送到客户端 使用此方法,我实现了与第二台服务器的连接,但它没有收到消息,并引发以下异常: 异常:java.nio.channels.NotYetConnectedException。java.nio.channels.NotYetConnectedException public void messageReceived(ChannelHandlerContext ctx, final

我有一些客户端,它们与一台服务器通信,我需要该服务器将消息转发到另一台服务器。然后,从第二台服务器接收消息并发送到客户端

使用此方法,我实现了与第二台服务器的连接,但它没有收到消息,并引发以下异常:

异常:java.nio.channels.NotYetConnectedException。java.nio.channels.NotYetConnectedException

public void messageReceived(ChannelHandlerContext ctx, final MessageEvent e) throws IOException, Exception {
        response = "hola" + "\r\n";
        Main.creaLog("Mensaje recibido del conc: " + e.getMessage().toString());
        Main.creaLog("Mensaje enviado al servidor : " + response);


        ClientBootstrap bootstrap1 = new ClientBootstrap(
        new NioClientSocketChannelFactory(
            Executors.newCachedThreadPool(),
            Executors.newCachedThreadPool()));

        // Configure the pipeline factory.
        //bootstrap1.setPipelineFactory(new CLIENTE.ClientePipelineFactory());
        bootstrap1.setPipelineFactory(new ChannelPipelineFactory() {
         public ChannelPipeline getPipeline() {
                return Channels.pipeline(new ClienteHandler());
         }
        });

        final ChannelFuture future = bootstrap1.connect(new InetSocketAddress("172.16.10.14", 12355));

        Channel channel = future.getChannel();

        if (channel.isWritable()) {
            ChannelFuture lastWriteFuture = channel.write(e.getMessage().toString() + "\r\n");
        }
        close = true;


    // We do not need to write a ChannelBuffer here.
    // We know the encoder inserted at TelnetPipelineFactory will do the conversion.
    ChannelFuture future = e.getChannel().write(response + "\r\n");
    //CIERRA LA CONEXION
    if (close) {
        future.addListener(ChannelFutureListener.CLOSE);
    }
}
如果有人能帮助我,我非常感谢。

看一看

现在,您基本上正在尝试在收到的每条消息上连接到远程服务器。这可能不是你想要的。您可能只想连接到远程服务器一次(即Netty代理示例中的出站通道),然后将新传入消息转发到该特定通道