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

3

我从未在Java中使用过RPC调用,因此对我需要研究的一些旧代码感到有些困惑。

我希望你能帮助我澄清如何在可能的情况下使用CXF进行RPC调用。

1)CXF不支持rpc/encoded调用(存在“Rpc/encoded wsdls are not supported in JAXWS 2.0”问题)。是否rpc/literal被CXF充分支持,并且在JAX-WS中得到了具体说明?它在这里提到,但不幸的是(为什么???)没有明确的消息表明RPC + Encoded的组合不受支持。我应该深入研究JSR 224吗?

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

1个回答

4
在现代soap框架(如CXF或JAX-WS)中,您只能使用document/literalrpc/literal
您的调查做得很好,但也许您应该更专注于WSDL和SOAP标准,而不是jax-ws和cxf文档。
WS-I(Web Services-Interoperability)组织定义了一组规则,用于创建Web服务,以便它可以良好地工作,独立于用于实现它的编程语言或技术。此标准称为Basic Profile(通常称为WS-I BP),目前版本为2.0。
WS-I BP建议不要使用“encoded”样式,并且仅使用“literal”。由于我们始终希望我们的Web服务符合BP(遵守基本配置文件),因此较新的Web服务框架(如JAX-WS)开始停止支持创建rpc/encodeddocument/encoded Web服务。
您不应花太多时间研究“document/encoded”组合,因为从未有人真正使用它,就像说您将使用XML模式类型进行消息传递,但您不会包含任何XML模式一样。这就是为什么您很可能在任何地方都找不到关于“document/encoded”的信息。
由于“rpc/encoded”是一种非常古老的消息传递风格,因此您应该使用同一时代的框架,例如Axis 1.4,并且忘记CXF或JAX-WS,因为我认为它们从来没有支持过它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接