当前位置: 首页 > 知识库问答 >
问题:

Camel HL7 - 将 ACK 发送回客户端时关闭通道异常

马冯浩
2023-03-14

我正在使用netty4构建一个HL7监听器,并处理HL7消息。成功处理后,会发回一个ACK。

 from("hl7NettyListener") 
      .routeId("route_hl7listener")
        .startupOrder(997)
          .unmarshal()
           .hl7(false)               
           .to("direct:a");



    from("direct:a") 
        .doTry()
            .to("bean:processHL7?method=process")        
        .doCatch(HL7Exception.class)
            .to("direct:ErrorACK")
            //.transform(ack())
            .stop()
        .end()
        .transform(ack())       
        .wireTap("direct:b");

这在我的局部日食中工作正常。我触发了一条 HL7 消息,然后返回了一个 ACk。

但是我把这个应用程序打包到一个jar中,放在我的服务器上,然后试着做一个

cat example.hl7 | netcat localhost 4444 (to fire a HL7 message to port 4444 on linux env)

我没有拿回 ACK。我收到一个关闭的连接异常。

调试网络消费者 - 通道: [id: 0xdf13b06b, L:0.0.0.0/0.0.0.0:4444] 书写正文: MSH|^~\

共有1个答案

邹弘
2023-03-14

这奏效了。它失败了,因为netcat立即关闭了连接。放了一个“netcat -i 5 localhost”让netcat等待5秒,并成功收到ACK。

 类似资料:
  • 它是简单的java套接字客户端/服务器模型(服务器发送数据,客户端接收)。问题是当客户端关闭时,服务器发送数据的位置(服务器不会检测客户端是否关闭)。我知道服务器可以检测并关闭流,但我想知道它的去向。

  • 我正在Unity中制作一个游戏,我试图将数据从客户端发送到服务器并返回到客户端(试图保存实例),但当我收到数据并尝试将数据发送回客户端时,它表示udp客户端未连接。 它成功地将数据从我的Unity客户端发送到服务器,但一旦它到达那里,套接字就会断开连接,我就无法返回任何内容。正如你所看到的,我试图设置一些多播选项,但它似乎不能正常工作。 客户: 服务器: 因此,服务器中UdpClient的实例会保

  • 使用 DataInputStream 获取从 Android 客户端发送到此 Java 桌面服务器的 int 和 long。之后,从Android客户端接收pdf文件。总共 3 个文件由客户端发送到服务器。问题是在另一个方向发送时。 我必须在while循环之后立即关闭输入和输出流。如果我不这样做,pdf文件将被破坏,程序将停止并停留在while循环中,不会继续执行到线程的末尾。 如果我必须关闭输入

  • 问题内容: 您好,我一直在尝试将文件从node.js发送到客户端。 我的代码有效,但是当客户端转到指定的url()时,它将流式传输文件。 从Google Chrome浏览器访问该文件可使文件(.mp3)在播放器中播放。 我的目标是让客户的浏览器下载文件,然后问客户他想在哪里存储文件,而不是在网站上流式传输。 问题答案: 您需要设置一些标题标志。 用下载代替流媒体;

  • 问题内容: 我只能在用户的套接字ID直接存储在io.sockets.on(’connect’)函数中时向用户发出消息。我不知道为什么在登录后尝试存储其套接字ID时为什么不起作用。 加工: 无法运作: JavaScript客户端代码段 解决方案:感谢@alessioalex, 我不得不从登录页面中删除对socket.io的引用,并将以下内容添加到io.sockets.on(’connection’)

  • socket.io 0.9 node.js 0.10.15 速递3.3.4 即:调用 --服务器端 --客户端