删除回复通道是正确的。您没有给出任何错误指示,但是网关接口方法的返回类型必须更改为byte []。
编辑
显然,如果大型机越来越垃圾,那么您做错了什么。在将“
ABCD”转换为
byte[](带有
getBytes())后,您应该进行EBCDIC转换;如果您在字符串中包含EBCDIC字符,则无法使用。另外,请记住,默认的序列化程序会将CRLF(ascii)添加到输出中。如果该大型机可以根据数据本身确定消息的结尾,则可以
ByteArrayRawSerializer在
serializer属性中使用a
。但是,您将需要自定义,
deserializer因为框架不会知道如何从流中构造消息。除非主机在发送答复后关闭套接字,否则a
ByteArrayRawSerializer将作为
deserializer属性。
与大型机(和其他大型机)通信的常用技术是使用1、2或4字节长的标头(网络字节顺序)。在
ByteArrayLengthHeaderSerializer做到了这一点。
如果大型机期望使用EBCDIC定界符,则需要一个自定义的序列化器/解串器-在那里进行EBCDIC转换,将其与应用程序逻辑分开可能更有意义。
您可以在此处阅读有关序列化器/反序列化器的信息。
TCP是一种流协议。这意味着必须为通过TCP传输的数据提供某种结构,以便接收器可以将数据划分为离散的消息。连接工厂配置为使用(反)序列化器在消息有效负载和通过TCP发送的位之间进行转换。通过分别为入站和出站消息提供解串器和序列化器,可以实现此目的。提供了许多标准(反)序列化器。
的
ByteArrayCrlfSerializer,转换一个字节数组字节流随后回车和换行字符(rn)。这是默认的(反)序列化器,例如,可以与telnet一起使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)