当前位置: 首页 > 面试题库 >

消费RPC /编码的Web服务的最佳方法?

蒋星驰
2023-03-14
问题内容

我需要为后端使用老式的RPC /编码WSDL Web服务。最初,我尝试为此使用Apache CXF和JAX-WS,但是JAX-WS
wsimport工具不使用rpc /嵌入式WSDL。

[错误] JAXWS 2.0不支持rpc /已编码的wsdls。

我也对使用JAX-RPC进行这项工作有疑问,因为它已经过时了。Axis 1.4已使用5年。

目前,我看到以下三个选项:

  1. 一个示例javax.xml.ws.Dispatch,使用JAX-WS 发送和接收SOAP并以某种方式解析它
  2. 使用JAX-RPC并因使用过时的技术而获得不良业力,
  3. 手动完成所有操作,以后再讨厌自己。

这些听起来都不是太好,所以如果您能给出一些好的线索,思考该怎么做以及如何解决它,我将不胜感激。


问题答案:

我的案例是通过手工编辑WSDL从 编码文字 (基本上是在操作输入和输出use="literal"下的唯一替换)解决了,然后可以使用
Apache CXF 生成存根。之所以可以这样做,是因为端点无法正确解析RPC /编码,并且无法针对WSDL验证RPC /编码规范XML。

尽管Axis 1.4可能对您有用,但使用带有少量WSDL hack的Apache CXF可能是一种更好的方法。

[旧答案]

供参考-我这次选择使用JAX-RPC和Axis 1.4。我生成了客户端代码,希望在服务升级时可以用JAX-WS实现替换它。



 类似资料:
  • 你们中有人知道用SOAP web服务实现消费者驱动的契约的方法或工具吗?我有一个发布SOAP web服务的遗留Java应用程序,用Apache CXF实现,由一群Spring Boot Java微服务使用。我已经在使用Pact和Spring Cloud Contract来测试我在微服务之间的REST调用,但是找不到一种方法来使用这些相同的工具或任何其他工具来实现SOAP web服务。

  • 后端使用Spring Data+Spring MVC。 谢谢你。

  • 我正在尝试使用camel使用restful Web服务。 为此,我正在配置动态endpointurl,因为RESTful url是在运行时创建的。每次我都会使用CamelContext类的以下方法检查特定endpointurl是否在我的CamelContext中注册为路由。 endpoint有Endpoint(String uri); 在这种情况下,如果未注册终结点,则使用自定义路由生成器将路由添

  • 主要内容:1. RPC样式,文档样式RPC和文档Web服务之间存在许多差异,它们之间的重要区别如下: 1. RPC样式 以下是RPC样式Web Service的重要特性: RPC样式的Web服务使用方法名称和参数来生成XML结构。 RPC样式生成的WSDL很难针对模式进行验证。 在RPC样式中,SOAP消息被发送为多个元素。 RPC样式消息紧密耦合。 在RPC样式中,SOAP消息保留操作名称。 在RPC样式中,参数作为离散值发送。

  • 这肯定不是REST,因为它不是无状态的。它考虑到cookies并有自己的会话。 是RPC吗?RPC和REST有什么区别?

  • 我正在为一个客户端开发一个在线视频存储系统,主要是用PHP编写的。目前我正在建立一个移动版本的桌面网站。我们的桌面站点允许用户在浏览器中观看视频,很像YouTube。 我的客户端通过我创建的manager界面上传视频,我的应用程序使用服务器上的FFmpeg将他的视频转码成几个分辨率和比特率。我不是FFmpeg方面的专家,虽然我不知道每个单独设置的来龙去脉,但我了解它作为一个整体是如何工作的。现在,