0

[更新]

我能够使用此链接在同一个盒子上调出 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 通道和打包程序。我在这里查看了以下频道和打包程序链接 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,它在原始数据前附加了数据长度。

4

2 回答 2

1

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

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

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

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

于 2015-07-21T07:19:48.097 回答
0

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

打包器帮助您打包消息中的字段,例如固定字段、长度前缀变量字段以及这些字段应具有的编码(十六进制、bcd、ascii)。

开箱即用的客户端服务器模拟程序使用 xml 来理解这些概念。

于 2016-08-18T04:19:35.710 回答