【发布时间】:2021-10-03 06:41:15
【问题描述】:
我使用 apache cxf 库作为我们的 SOAP 客户端将 SOAP 请求传输到特定端点。 不幸的是,如果数据出现在一行中(这几乎是标准),这个端点似乎确实很难正确解析数据。我编写了一个简单的测试客户端,它将 RAW 字符串发送到该端点,并且通过它我能够发现如果 SOAP 消息打印得很漂亮,则可以处理请求。如果我在一行中发送相同的请求,服务器会响应 HTTP/1.1 500 内部服务器错误。
我已经提交了错误报告,但我担心接收公司会要求我发送打印好的数据。
apache cxf 可以吗?
【问题讨论】:
-
您可以尝试在发送前使用interceptors 来转换响应,但是您确定这只是消息的格式,而有效的请求和无效的请求之间没有其他区别吗?如果肥皂网络服务无法解析格式不正确的正确消息(无论如何只有人类会关心),它将从根本上被破坏。
-
是的,我确定。老实说,整个事情比描述的要复杂一些。在我将“授权”HTTP-Header 传输到远程系统之前,一切正常。使用该标头,远程系统中断并发送状态代码 500。在我看来(从我收到的错误消息推断)远程端的转换场景试图修改我的原始请求,如果所有请求都在一行中,该请求似乎失败.如果我更改我的请求并添加至少两个换行符(在特定位置),一切都会再次正常工作。对我来说,一个非常明确的指标表明远程系统存在错误