[更新]
我能够使用以下链接在同一个盒子上显示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,其原始数据前面有数据长度。
答案 0 :(得分:1)
在使用PostChannel和PostPackager后,我能够让它运行并且可以看到消息。我需要做的事情基本上是改变服务器模拟器和客户端模拟器配置,以使用所需的Channel和Packager。
这是我在服务器和客户端模拟器中更改的内容
<channel class="org.jpos.iso.channel.PostChannel" logger="Q2"
packager="org.jpos.iso.packager.PostPackager">
<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来理解概念。