我有一个SOAP Web服务,该服务由JBOSS EAP实例提供,并通过SOAP UI客户端调用。
此Web服务返回的结果中,该Web服务可能会返回这样的XML字符串:
相同的字符串将在SOAP UI客户端中呈现如下:
如您所见,在此消息的传输过程中,某些字符(特别是<
)已被编码为<
:这是正常现象,因为编码器希望避免将字符串解释为当它只是按原样返回的输出时的标记。
我们观察到的是,当字符串太长时,编码就会出错。我试图分析和理解,这就是我所能获得的:
<
字符照原样保留,未转换为<
很奇怪,通常在服务器端形成一个XML标记:
<calculationPeriod>
...some stuff
</calculationPeriod>
...将其第二个c
转换为<
,这显然完全破坏了XML:
<cal<ulationPeriod>
...some stuff
</calculationPeriod>
老实说,我不知道如何进一步调试此问题。我所能注意到的是:
<
来形成响应并将其编码为XML。 重要的一点是,这仅在字符串特别长时发生。我有一个长度为8192
个字符(在编码之前)的输出就可以了,而另一个长度为9567
个字符(在编码前)的输出就出错了,这是这个问题的主题。
很抱歉,我无法提供可复制的用例,也无法使用标题,该标题什么都没有,也没有任何疑问。 我愿意为可能提供帮助的人员提供任何其他信息,并在我清楚地了解问题所在之后重新表述该问题。 我当然在网上看起来很多,但是找不到类似的东西,可能是我搜索的关键词不正确。