JAX-WS/CXF 中的 /encoded 和 /literal 支持

/encoded and /literal support in JAX-WS/CXF

我从未在 java 中使用过 RPC 调用,所以我对需要研究的一些遗留代码感到有点困惑。

如果可能的话,我希望你能帮助我阐明如何将 CXF 与 RPC 结合使用。

1) CXF 不支持 rpc/encoded 调用("Rpc/encoded wsdls are not supported in JAXWS 2.0" 问题)。 rpc/literal 是否完全受 CXF 支持,并在 JAX-WS 中指定?提到了 here 但不幸的是(为什么???)没有明确的消息表明不支持 RPC + Encoded 的组合?我应该更深入地了解(JSR 224)吗?

2) document/encoded 呢? JAX-WS 及其参考实现(至少 CXF)是否完全支持 by/specified?

在 CXF 或 JAX-WS 等现代 soap 框架中,您可以使用document/literalrpc/literal

您在调查方面做得很好,但也许您应该更多地关注 WSDL 和 SOAP 标准而不是 jax-ws 和 cxf 文档。

WS-I(Web Services-Interoperability) organization defines a set of rules to be followed when creating a web service so it will work well, independently of the programming language or technologies used to implement it. This standard is called Basic Profile(通常称为 WS-I BP),当前版本为 2.0。

WS-I BP 推荐不要使用'encoded'风格,只使用'literal'。由于我们始终希望我们的 Web 服务符合 BP(以遵守基本配置文件),因此 JAX-WS 等较新的 Web 服务框架开始放弃对创建 rpc/encodeddocument/encodedWeb 服务的支持。

你不应该花太多时间研究 document/encoded 组合,因为它从来没有被任何人真正使用过,因为它就像说你将要使用 xml 模式类型来进行消息传递,但你不会包含任何 xml 架构。这就是为什么您很可能在任何地方都找不到有关 document/encoded 的信息。

由于 rpc/encoded 是一种非常古老的消息传递风格,您应该使用同一时代的框架,例如 Axis 1.4忘记 CXF 或 JAX -WS 因为我认为他们从不支持它。