我正在向iso服务器发送请求。我有些成功,有时我得到解析错误
这是我的客户端解析错误 jpos 日志:
<send>
<isomsg direction="outgoing">
<field id="0" value="0200"/>
<field id="2" value="9841414141"/>
<field id="3" value="401010"/>
<field id="4" value="200"/>
<field id="7" value="0812104837"/>
<field id="11" value="002356"/>
<field id="12" value="104837"/>
<field id="13" value="0812"/>
<field id="14" value="0000"/>
<field id="15" value="0812"/>
<field id="18" value="6011"/>
<field id="22" value="901"/>
<field id="25" value="00"/>
...........
............
</isomsg>
</send>
<warn>
channel-receiver-RBB_OUT
<iso-exception>
Invalid message length
03
org.jpos.iso.ISOException: Invalid message length
03
at org.jpos.iso.channel.ASCIIChannel.getMessageLength(ASCIIChannel.java:118)
at org.jpos.iso.BaseChannel.receive(BaseChannel.java:704)
at org.jpos.q2.iso.ChannelAdaptor$Receiver.run(ChannelAdaptor.java:318)
at java.base/java.lang.Thread.run(Thread.java:834)
</iso-exception>
</warn>
请求在服务器端成功,看起来服务器也在发送响应。我认为当 jpos 解析来自服务器的响应时会出现问题
这是来自服务器的响应日志:
03410210F23A40010E8384000000000006020030109841414141401010000000000200081210483700235610385008120812601108............................................................
.............................
我认为问题在于 0341 消息长度,但服务器正在发送 0341 但 jpos 无法解析它。当我向服务器发送请求时,我有 50% 的时间得到成功响应,而没有更改任何 jpos 配置,所以我认为我的配置没问题。
这是我的频道配置:
<channel-adaptor name='abcca' class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2">
<channel class="org.jpos.iso.channel.ASCIIChannel" logger="Q2" packager="org.jpos.iso.packager.GenericPackager">
<property name="host" value="176.17.7.30" />
<property name="port" value="9002" />
<property name="packager-config" value="cfg/packager_abc.xml" />
<property name="timeout" value="300000" />
<property name="keep-alive" value="true" />
</channel>
<in>ABC_IN</in>
<out>ABC_OUT</out>
<reconnect-delay>10000</reconnect-delay>
</channel-adaptor>