我正在构建一个消息服务,它使用soap消息来包含有效负载。我在weblogic上配置了一个队列,在将我的soap消息发送到该队列后,输出以数字形式返回,看起来像是由于某种原因在soap消息上进行了散列。我也使用MessageTransformer将soap消息转换为jms消息。
这是输出,
00000000: 0000 00a6 aced 0005 7372 0013 6a61 7661
...ᆭᆲ...sr..java
00000010: 2e75 7469 6c2e 4861 7368 7461 626c 6513
.util.Hashtable.
00000020: bb0f 2521 4ae4 b803 0002 4600 0a6c 6f61
ᄏ.%!J.ᄌ...F..loa
00000030: 6446 6163 746f 7249 0009 7468 7265 7368
dFactorI..thresh
00000040: 6f6c 6478 703f 4000 0000 0000 0877 0800
oldxp?@......w..
00000050: 0000 0b00 0000 0374 000a 534f 4150 4163
.......t..SOAPAc
00000060: 7469 6f6e 7400 0222 2274 000c 436f 6e74
tiont..""t..Cont
00000070: 656e 742d 5479 7065 7400 1774 6578 742f
ent.Typet..text/
00000080: 786d 6c3b 2063 6861 7273 6574 3d55 5446
xml; charset.UTF
00000090: 2d38 7400 0e43 6f6e 7465 6e74 2d4c 656e
.8t..Content.Len
000000a0: 6774 6874 0003 3332 3778 0000 0147 3c65
gtht..327x...G.e
000000b0: 6e76 3a45 6e76 656c 6f70 6520 786d 6c6e
nv:Envelope xmln
000000c0: 733a 656e 763d 2268 7474 703a 2f2f 7363
s:env."http://sc
000000d0: 6865 6d61 732e 786d 6c73 6f61 702e 6f72
hemas.xmlsoap.or
000000e0: 672f 736f 6170 2f65 6e76 656c 6f70 652f
g/soap/envelope/
000000f0: 223e 3c65 6e76 3a48 6561 6465 723e 416e
"..env:Header.An
00000100: 6472 6f69 643c 2f65 6e76 3a48 6561 6465
droid./env:Heade
00000110: 723e 3c65 6e76 3a42 6f64 793e 3c74 7261
r..env:Body..tra
00000120: 696e 696e 673a 4a41 5641 2078 6d6c 6e73
ining:JAVA xmlns
00000130: 3a74 7261 696e 696e 673d 2268 7474 703a
:training."http:
00000140: 2f2f 7368 6976 6173 6f66 742e 696e 2f62
//shivasoft.in/b
00000150: 6c6f 6722 3e3c 5753 3e42 5045 4c3c 2f57
log"..WS.BPEL./W
00000160: 533e 3c2f 7472 6169 6e69 6e67 3a4a 4156
S../training:JAV
00000170: 413e 3c74 7261 696e 696e 673a 4a41 5641
A..training:JAVA
00000180: 2078 6d6c 6e73 3a74 7261 696e 696e 673d
xmlns:training.
00000190: 2268 7474 703a 2f2f 7368 6976 6173 6f66
"http://shivasof
000001a0: 742e 696e 2f62 6c6f 6722 3e3c 5370 7269
t.in/blog"..Spri
000001b0: 6e67 3e48 6164 6f6f 7020 7472 6169 6e69
ng.Hadoop traini
000001c0: 6e67 3c2f 5370 7269 6e67 3e3c 2f74 7261
ng./Spring../tra
000001d0: 696e 696e 673a 4a41 5641 3e3c 2f65 6e76
ining:JAVA../env
000001e0: 3a42 6f64 793e 3c2f 656e 763a 456e 7665
:Body../env:Enve
000001f0: 6c6f 7065 3e
lope.
不知道该怎么想,有什么办法可以避免这些数字吗?格拉西亚斯!
答案 0 :(得分:0)
这些数字是十六进制代码,代表字节。看起来消息是以JMSByteMessage类型发送的。您需要确保在收件人端正确转换为JMSTextMessage。在谷歌上有很多这方面的例子。 或者更简单的解决方案:将消息发送为JMSTextMessage。在这种情况下,不需要特殊转换。
有关JMS消息类型的信息(此处为IBM MQ): http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q032110_.htm
滚动到底部,最后一张图显示了使用文本浏览器打开jms字节消息时的效果(效果与您的情况相同):
http://www.hermesjms.com/confluence/display/HJMS/Sending+a+Message