我从来没有在java中使用过RPC调用,所以我对一些遗留代码有点困惑,我需要研究一下。
我希望你能帮助我澄清如何使用CXF与RPC,如果可能的话。
1) CXF不支持rpc/encoded
调用("Rpc/编码wsdl在JAXWS 2.0中不受支持"问题)。CXF是否完全支持rpc/literal
,并且在JAX-WS中对此进行了指定?这里提到了它,但不幸的是(为什么???)没有明确的消息,RPC +编码的组合不受支持?我应该更深入地研究(JSR 224)吗?
2) document/encoded
呢?JAX-WS及其参考实现(至少是CXF)是否完全支持/指定它?
在现代soap框架中,如CXF或JAX-WS,您可以仅使用document/literal
或rpc/literal
。
你在调查中做得很好,但也许你应该更多地关注WSDL和SOAP标准,而不是jax-ws和cxf文档。
Web服务互操作性组织定义了一组创建Web服务时要遵循的规则,这样它就可以很好地工作,而不依赖于用于实现它的编程语言或技术。这个标准被称为基本概要文件(通常称为WS-I BP),目前是2.0版。
WS-I BP建议不使用'encoded'样式,只使用 'literal'样式。由于我们总是希望我们的web服务是BP兼容的(坚持基本配置文件),新的web服务框架,如JAX-WS开始放弃对创建rpc/encoded
和document/encoded
web服务的支持。
你不应该花太多时间研究document/encoded
组合,因为它从来没有被任何人真正使用过,因为它就像说你要使用xml模式类型的消息传递,但你不打算包括任何xml模式。这就是为什么你很可能在任何地方都找不到关于document/encoded
的信息。
由于rpc/encoded
是一种非常古老的消息传递样式,您应该使用同一时代的框架,例如Axis 1.4和,忘记 CXF或JAX-WS,因为我认为它们从未支持它。