JAX - RPC 与 JAXM 技术解析
1. JAX - RPC 互操作性
在 Web 服务的范畴中,互操作性指的是服务的功能特性在不同的应用平台、编程语言、硬件、操作系统和应用数据模型下应保持不变。按照定义,Web 服务应当具备互操作性,服务消费者不应受限于服务的实现方式。
然而,当应用程序使用不同的 SOAP 库来生成和处理底层 SOAP 消息、采用不同的编程语言以及不同的软硬件栈时,必然会出现问题。以下是这些库或工具包之间互操作性问题的常见原因:
- 仅符合部分规范 :实现仅遵循完整 SOAP 或其他 XML 规范的子集。
- 依赖可选规范 :实现依赖于 SOAP 规范的可选方面。例如:
- 发送编码参数的类型信息是可选的,但如果某个实现假定接收到的消息中会包含此信息,那么它可能无法与不发送该信息的其他实现进行互操作。
- 规范中未区分 SOAPAction 值为 “” 和 null 的情况,但有些实现支持两者,而另一些实现对于非空的 SOAPAction 根本不引用该值。
- 对规范定义理解不同 :实现对 SOAP 规范中模糊定义的解释不同。例如:
- 对于一个无返回值且无输出参数的 RPC 响应,服务应如何表示并不明确。它可以是一个空的 SOAP 信封、一个空的 SOAP 响应元素,甚至是一个 HTTP 204(“无响应”)代码。
- 空值可以通过不包含该 XML 元素或使用 xsi:nil=”true” 的元素来表示。
确保互操作性的唯一真正机制是验证是否符合标准:
- 传输协议使
超级会员免费看
订阅专栏 解锁全文
52

被折叠的 条评论
为什么被折叠?



