Android 从服务器接收iso8583消息时断开对等连接

Android 从服务器接收iso8583消息时断开对等连接,android,iso8583,jpos,Android,Iso8583,Jpos,我得到了以下代码片段: final ISOMsg isoMsg = new ISOMsg(); isoMsg.setPackager(packager); isoMsg.setMTI("0800"); isoMsg.set(3, "9A0000"); isoMsg.set(7, ISODate.formatDate(now, "MMddHHmmss")); isoMsg.set(11, "123456"); isoMsg.set(12, ISODate.formatDate(now,"HH

我得到了以下代码片段:

final ISOMsg isoMsg = new ISOMsg();
isoMsg.setPackager(packager);
isoMsg.setMTI("0800");
isoMsg.set(3, "9A0000");
isoMsg.set(7, ISODate.formatDate(now, "MMddHHmmss"));   
isoMsg.set(11, "123456");
isoMsg.set(12, ISODate.formatDate(now,"HHmmss"));    
isoMsg.set(13, ISODate.formatDate(now,"MMdd"));         
isoMsg.set(41, "20390040");
isoMsg.set(62,"0100820390040");
XMLChannel channel = new XMLChannel("xx.xx.xx.xxx", 1234, packager);
            try{

                logger.addListener(new SimpleLogListener(System.out));
                //channel.setPackager(packager);
                channel.setLogger(logger, "server-request-channel");
                channel.setTimeout(30000);
                channel.setHeader(isoMsg_.pack());
                channel.connect();
            }catch (Exception ex){
                System.out.println(ex.getMessage());
            }

            try{
                channel.send(isoMsg_);                      
                ISOMsg serverResponse = channel.receive();
                Log.i("response",new String(serverResponse.pack()));
            }catch(ISOException ex){
                System.out.println(ex.getMessage());
            }catch(Exception e){
                System.out.println(e.getMessage());
            }
每当“对等断开连接”消息出现在以下行时,我都会收到该消息:

ISOMsg serverResponse = channel.receive();
下面是日志

<log realm="server-request-channel/xx.xx.xx.xx:1234" at="Fri Aug 14 11:06:04 WAT 2015.900">
    <connect>
        xx.xx.xx.xx:1234
    </connect>
 </log>

<log realm="server-request-channel/xx.xx.xx.xx:1234" at="Fri Aug 14 11:06:04 WAT 2015.927">
    <send>
        <isomsg direction="outgoing">
            <field id="0" value="0800"/>
            <field id="3" value="9A0000"/>
            <field id="7" value="0816210554"/>
            <field id="11" value="123456"/>
            <field id="12" value="210554"/>
            <field id="13" value="0816"/>
            <field id="41" value="20390040"/>
            <field id="62" value="0100820390050"/>          
        </isomsg>
    </send>
</log>

<log realm="server-request-channel/41.58.130.138:55533" at="Fri Aug 14 11:06:04 WAT 2015.958">
    <receive>
        <peer-disconnect/>
    </receive>
</log>

xx.xx.xx.xx:1234

我不知道我是否做得不对,或者我遗漏了什么。这应该是一个简单的(我认为)网络管理请求。如何解决此问题?

远程端可能不喜欢您的消息(频道可能错误、打包机可能错误、标头可能错误),并在收到您的请求后立即关闭连接

调用
channel.setHeader(isoMsg_u2;.pack())
非常可疑,为什么要将ISO8583消息作为标题发送到实际的ISO8583消息?这可能是错误的(除非规范要求)

他们端的日志可能知道为什么要关闭连接,并可能会提示您可能出现的错误


恐怕您必须联系您的远程端点。

远程端点可能不喜欢您的消息(频道可能错误、打包机可能错误、标头可能错误),并在收到您的请求后立即关闭连接

调用
channel.setHeader(isoMsg_u2;.pack())
非常可疑,为什么要将ISO8583消息作为标题发送到实际的ISO8583消息?这可能是错误的(除非规范要求)

他们端的日志可能知道为什么要关闭连接,并可能会提示您可能出现的错误


恐怕您必须联系您的远程端点。

远程端点可能不喜欢您的消息(频道可能错误、打包机可能错误、标头可能错误),并在收到您的请求后立即关闭连接

调用
channel.setHeader(isoMsg_u2;.pack())
非常可疑,为什么要将ISO8583消息作为标题发送到实际的ISO8583消息?这可能是错误的(除非规范要求)

他们端的日志可能知道为什么要关闭连接,并可能会提示您可能出现的错误


恐怕您必须联系您的远程端点。

远程端点可能不喜欢您的消息(频道可能错误、打包机可能错误、标头可能错误),并在收到您的请求后立即关闭连接

调用
channel.setHeader(isoMsg_u2;.pack())
非常可疑,为什么要将ISO8583消息作为标题发送到实际的ISO8583消息?这可能是错误的(除非规范要求)

他们端的日志可能知道为什么要关闭连接,并可能会提示您可能出现的错误


恐怕您必须联系您的远程端点。

您收到的异常是服务器端的,服务器终止客户端连接的原因有很多,比如数据包长度无效,或者之前的注释头未验证,或者您使用的通道类型不同(对于JPO)

您收到的异常是服务器端的,服务器终止客户端连接的原因有很多,例如无效的数据包长度,或者之前的注释头未验证,或者您使用的通道类型不同(对于JPO)

您收到的异常是服务器端的,服务器终止客户端连接的原因有很多,例如无效的数据包长度,或者像以前的注释头未验证或您使用的不同通道类型(对于JPO)

您收到的异常是服务器端的,服务器终止客户端连接的原因很多,例如数据包长度无效,或者像以前的注释头未验证或您使用的不同通道类型(对于JPO)

感谢@apr的建议。我查看了规范文档,发现他们需要通过SSL连接发送消息。我不知道如何使用JPOSTake查看一下,您可以在这里获得完整的文档:感谢@apr的建议。我查看了规范文档,发现他们需要通过SSL连接发送消息。我不知道如何使用JPOSTake查看一下,您可以在这里获得完整的文档:感谢@apr的建议。我查看了规范文档,发现他们需要通过SSL连接发送消息。我不知道如何使用JPOSTake查看一下,您可以在这里获得完整的文档:感谢@apr的建议。我查看了规范文档,发现他们需要通过SSL连接发送消息。我不知道如何使用JPOSTake查看您可以在此处获得完整的文档: