JPOS Q2:无法查看原始ISO 8583数据

时间:2015-07-20 08:05:33

标签: jpos

[更新]

我能够使用以下链接在同一个盒子上显示JPOS客户端和服务器模拟器:http://jpos.org/blog/2013/07/setting-up-the-client-simulator/(请注意,该设置非常类似于链接中描述的用于运行服务器模拟器的设置)。

我接下来要做的是基本上尝试查看tcpdump(也使用wireshark)。但我所看到的并不是我的预期。这就是我所看到的(请注意数据部分)

Data (325 bytes)

0000  3c 69 73 6f 6d 73 67 3e 0a 20 20 3c 21 2d 2d 20   <isomsg>.  <!-- 
0010  6f 72 67 2e 6a 70 6f 73 2e 69 73 6f 2e 70 61 63   org.jpos.iso.pac
0020  6b 61 67 65 72 2e 58 4d 4c 50 61 63 6b 61 67 65   kager.XMLPackage
0030  72 20 2d 2d 3e 0a 20 20 3c 66 69 65 6c 64 20 69   r -->.  <field i
0040  64 3d 22 30 22 20 76 61 6c 75 65 3d 22 31 38 30   d="0" value="180
0050  30 22 2f 3e 0a 20 20 3c 66 69 65 6c 64 20 69 64   0"/>.  <field id
0060  3d 22 37 22 20 76 61 6c 75 65 3d 22 30 37 32 30   ="7" value="0720
0070  30 30 33 36 33 39 22 2f 3e 0a 20 20 3c 66 69 65   003639"/>.  <fie
0080  6c 64 20 69 64 3d 22 31 31 22 20 76 61 6c 75 65   ld id="11" value
0090  3d 22 37 39 39 38 31 33 22 2f 3e 0a 20 20 3c 66   ="799813"/>.  <f
00a0  69 65 6c 64 20 69 64 3d 22 31 32 22 20 76 61 6c   ield id="12" val
00b0  75 65 3d 22 37 39 39 38 30 35 22 2f 3e 0a 20 20   ue="799805"/>.  
00c0  3c 66 69 65 6c 64 20 69 64 3d 22 36 33 22 20 76   <field id="63" v
00d0  61 6c 75 65 3d 22 4d 6f 6e 20 4a 75 6c 20 32 30   alue="Mon Jul 20
00e0  20 30 30 3a 33 36 3a 33 39 20 50 44 54 20 32 30    00:36:39 PDT 20
00f0  31 35 22 2f 3e 0a 20 20 3c 69 73 6f 6d 73 67 20   15"/>.  <isomsg 
0100  69 64 3d 22 31 32 30 22 3e 0a 20 20 20 20 3c 66   id="120">.    <f
0110  69 65 6c 64 20 69 64 3d 22 30 22 20 76 61 6c 75   ield id="0" valu
0120  65 3d 22 32 39 31 31 30 30 30 31 22 2f 3e 0a 20   e="29110001"/>. 
0130  20 3c 2f 69 73 6f 6d 73 67 3e 0a 3c 2f 69 73 6f    </isomsg>.</iso
0140  6d 73 67 3e 0a                                    msg>.
    Data: 3c69736f6d73673e0a20203c212d2d206f72672e6a706f73...
    [Length: 325]

如果查看数据,它看起来像XML ISO Msg。我期待像ISO 8583的HEX表示,其中第一个字节是MTI等等。

在查看客户端模拟器文件后,我意识到它是一个XML Channel和packager。我查看了以下频道&amp;打包机链接在这里jpos.org/doc/javadoc/org/jpos/iso/packager/package-summary.html jpos.org/doc/javadoc/org/jpos/iso/channel/package-summary.html

将打包器更改为PostChannel和PostPackager后,我仍然看到我的客户端出现问题,我看到它超时了。想知道是否有办法通过tcpdump / wireshark查看实际的原始数据。最接近的是Postilion,其原始数据前面有数据长度。

2 个答案:

答案 0 :(得分:1)

在使用PostChannel和PostPackager后,我能够让它运行并且可以看到消息。我需要做的事情基本上是改变服务器模拟器和客户端模拟器配置,以使用所需的Channel和Packager。

这是我在服务器和客户端模拟器中更改的内容

  1. 服务器模拟器:更改文件src / dist / deploy / 05_serversimulator.xml以使用所需的频道和打包器
  2.  <channel class="org.jpos.iso.channel.PostChannel" logger="Q2"
           packager="org.jpos.iso.packager.PostPackager">
    
    1. 客户端模拟器:更改文件./src/dist/deploy/10_clientsimulator_channel.xml以使用所需的频道和打包器
    2.    <channel class="org.jpos.iso.channel.PostChannel" logger="Q2"
             packager="org.jpos.iso.packager.PostPackager">
      

      然后启动客户端和服务器模拟器。

答案 1 :(得分:0)

频道可以帮助您连接到其他实体,并根据所使用频道的实现添加标题,长度标题,tpdu等。 您在此处使用的PostChannel会添加一个包含消息大小的2字节长度标头。这有助于接收方从tcp流中收集适当数量的字节。

打包程序可以帮助您打包消息中的字段,示例是固定字段,长度前置变量字段以及这些字段应具有的编码(hex,bcd,ascii)。

客户端服务器开箱即用,使用xml来理解概念。