CN105007265A - 将SOAP转换为Spring远程调用的方法及系统 - Google Patents
将SOAP转换为Spring远程调用的方法及系统 Download PDFInfo
- Publication number
- CN105007265A CN105007265A CN201510353976.1A CN201510353976A CN105007265A CN 105007265 A CN105007265 A CN 105007265A CN 201510353976 A CN201510353976 A CN 201510353976A CN 105007265 A CN105007265 A CN 105007265A
- Authority
- CN
- China
- Prior art keywords
- soap
- call
- class
- client
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种将SOAP转换为Spring远程调用的方法,包括:1、根据原始SOAP程序的WSDL生成SOAP程序调用代理;2、根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写;3、Spring?Remoting?Servlet接收请求,并触发SOAP程序调用代理,所述客户端调用类调用所述原始SOAP程序客户端,所述原始SOAP程序客户端调用原始SOAP程序,将调用结果返回并响应请求。本发明还提供一种将SOAP转换为Spring远程调用的系统,本发明的方法转换工作量小,使用更简单、高效。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种将SOAP转换为Spring远程调用的方法及系统。
背景技术
众所周知,SOAP(Simple Object Access Protocol,即简单对象访问协议)是分布式的环境中交换信息的简单的协议,是一种轻量的、简单的、基于XML的协议,它被设计成在web上交换结构化的和固化的信息,是一种标准化的通讯规范,主要用于web服务(web service)中。SOAP是基于XML的文本协议,与WSDL(Web Services Description Language,即网络服务描述语言)、UDDI(Universal Description Discovery and Integration,即统一描述、发现和集成协议)并称Web Services三要素。然而随着近年来分布式传输与调用协议的发展,简单、高效成为当下对服务暴露的主要要求,在Java领域,出现了Spring远程过程调用协议,其提供对RMI、HttpInvoker、Hessian、Burlap等技术的集成,屏蔽这些实现技术的差异,用户只需开发POJO(Plain Old Java Objects,即简单的Java对象),然后按照Spring规定的格式进行配置文件的编写,编写后根据Spring暴露的远程服务访问地址进行调用,从而实现远程过程调用的简单框架。特别是配合以Hessian为代表的二进制高效序列化机制配合传输协议,解决对象传输问题。现有技术的Web Services-SOAP需要先后二次编写和解析WSDL才能调用,对复杂对象参数支持不好,不够简单;传输也是根据XML文本协议进行传输,非二进制且围堵标签亦浪费空间,不够高效;然而,SOAP使用比较广泛,历史遗留项目多,现有技术不通过SOAP程序转换,而是直接改造为更简单高效的Spring远程过程调用协议的工作量大、成本较高,但无需SOAP程序的二次编写和解析。
发明内容
本发明要解决的技术问题之一,在于提供一种将SOAP协议转换为Spring协议的方法,本发明能够在Java环境中,不改变原始SOAP的程序的前提下,使用SOAP带有的本地调用(即Local Invoke),封装SOAP程序调用代理,并将SOAP程序调用代理注册到Spring远程过程调用协议中,实现将SOAP转换为简单、高效的Spring远程过程调用协议。
本发明要解决的问题之一,是这样实现的:
一种将SOAP转换为Spring远程调用的方法,包括如下步骤:
步骤1、根据原始SOAP程序的WSDL生成SOAP程序调用代理,所述SOAP程序调用代理包括原始SOAP程序客户端、按照POJO的格式生成的客户端调用类及其对应的调用类接口;
步骤2、根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写,编写后根据远程服务访问地址进行调用;
步骤3、Spring Remoting Servlet接收服务器的请求,并触发SOAP程序调用代理,通过所述客户端调用类调用所述原始SOAP程序客户端,然后所述原始SOAP程序客户端通过原始SOAP程序带有的本地调用方式调用原始SOAP程序,然后将调用结果返回给Spring Remoting Servlet响应请求。
本发明要解决的技术问题之二,在于提供一种将SOAP协议转换为Spring协议的系统,本发明能够在Java环境中,不改变原始SOAP的程序的前提下,使用SOAP带有的本地调用(即Local Invoke),封装SOAP程序调用代理,并将SOAP程序调用代理注册到Spring远程过程调用协议中,实现将SOAP转换为简单、高效的Spring远程过程调用协议。
本发明要解决的问题之二,是这样实现的:
一种将SOAP转换为Spring远程调用的系统,包括:
代理生成模块,用于根据原始SOAP程序的WSDL生成SOAP程序调用代理,所述SOAP程序调用代理包括原始SOAP程序客户端、按照POJO的格式生成的客户端调用类及其对应的调用类接口;
文件编写模块,用于根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写,编写后根据远程服务访问地址进行调用;
程序调用模块,用于Spring Remoting Servlet接收服务器的请求,并触发SOAP程序调用代理,通过所述客户端调用类调用所述原始SOAP程序客户端,然后所述原始SOAP程序客户端通过原始SOAP程序带有的本地调用方式调用原始SOAP程序,然后将调用结果返回给Spring Remoting Servlet响应请求。
本发明具有如下优点:
1、本发明的方法和系统没有改变原始SOAP程序,转换工作量小;
2、通过本发明的方法和系统将SOAP转换为Spring后,无需原先SOAP的二次编写和解析后才能调用,并直接支持复杂对象参数,使用更简单;
3、通过本发明的方法将和系统SOAP转换为Spring后,网络传输可以使用二进制协议,使用更高效。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种将SOAP转换为Spring远程调用的方法执行流程图。
图2为本发明一种将SOAP转换为Spring远程调用的方法工作示意图。
具体实施方式
如图1和图2所示,本发明的一种将SOAP转换为Spring远程调用的方法,包括如下步骤:
步骤1、根据原始SOAP程序的WSDL生成SOAP程序调用代理,所述SOAP程序调用代理包括原始SOAP程序客户端(根据原始SOAP程序的WSDL自动生成的客户端或手工编写的客户端)、按照POJO(Plain OldJava Objects,即简单的Java对象)的格式生成的客户端调用类及其对应的调用类接口;
步骤2、根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写,编写后根据Spring远程过程调用协议暴露的远程服务访问地址进行调用;
步骤3、Spring Remoting Servlet作为Spring远程过程调用协议的承载者,接收服务器的请求并触发SOAP程序调用代理,通过所述客户端调用类调用所述原始SOAP程序客户端,然后所述原始SOAP程序客户端通过原始SOAP程序带有的本地调用(Local Invoke)方式调用JVM中的原始SOAP程序,然后将调用结果返回给Spring Remoting Servlet响应请求,由于本地调用是在JVM中传递原始SOAP程序,不会在网络传输时损耗较多时间,效率快。
本发明的一种将SOAP转换为Spring远程调用的系统,包括:
代理生成模块,用于根据原始SOAP程序的WSDL生成SOAP程序调用代理,所述SOAP程序调用代理包括原始SOAP程序客户端(根据原始SOAP程序的WSDL自动生成的客户端或手工编写的客户端)、按照POJO(Plain Old Java Objects,即简单的Java对象)的格式生成的客户端调用类及其对应的调用类接口;
文件编写模块,用于根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写,编写后根据Spring远程过程调用协议暴露的远程服务访问地址进行调用;
程序调用模块,用于将Spring Remoting Servlet作为Spring远程过程调用协议的承载者,接收服务器的请求并触发SOAP程序调用代理,通过所述客户端调用类调用所述原始SOAP程序客户端,然后所述原始SOAP程序客户端通过原始SOAP程序带有的本地调用(Local Invoke)方式调用JVM中的原始SOAP程序,然后将调用结果返回给Spring Remoting Servlet响应请求,由于本地调用是在JVM中传递原始SOAP程序,不会在网络传输时损耗较多时间,效率快。
其中,JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的;Spring Remoting Servlet是指Spring远程过程调用服务程序,是根据Spring远程过程调用协议配置文件(remote-servlet.xml)提供对RMI、HttpInvoker、Hessian、Burlap等远程服务技术的集成,屏蔽这些实现技术的差异,统一暴露基于Spring远程过程调用协议的远程服务访问地址。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (2)
1.一种将SOAP转换为Spring远程调用的方法,其特征在于:包括如下步骤:
步骤1、根据原始SOAP程序的WSDL生成SOAP程序调用代理,所述SOAP程序调用代理包括原始SOAP程序客户端、按照POJO的格式生成的客户端调用类及其对应的调用类接口;
步骤2、根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写,编写后根据远程服务访问地址进行调用;
步骤3、Spring Remoting Servlet接收服务器的请求,并触发SOAP程序调用代理,通过所述客户端调用类调用所述原始SOAP程序客户端,然后所述原始SOAP程序客户端通过原始SOAP程序带有的本地调用方式调用原始SOAP程序,然后将调用结果返回给Spring Remoting Servlet响应请求。
2.一种将SOAP转换为Spring远程调用的系统,其特征在于:包括:
代理生成模块,用于根据原始SOAP程序的WSDL生成SOAP程序调用代理,所述SOAP程序调用代理包括原始SOAP程序客户端、按照POJO的格式生成的客户端调用类及其对应的调用类接口;
文件编写模块,用于根据远程服务访问地址、该客户端调用类的类名及其对应的调用类接口的类名,将该原始SOAP程序按照Spring远程过程调用协议规定的格式进行配置文件的编写,编写后根据远程服务访问地址进行调用;
程序调用模块,用于Spring Remoting Servlet接收服务器的请求,并触发SOAP程序调用代理,通过所述客户端调用类调用所述原始SOAP程序客户端,然后所述原始SOAP程序客户端通过原始SOAP程序带有的本地调用方式调用原始SOAP程序,然后将调用结果返回给Spring Remoting Servlet响应请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510353976.1A CN105007265A (zh) | 2015-06-24 | 2015-06-24 | 将SOAP转换为Spring远程调用的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510353976.1A CN105007265A (zh) | 2015-06-24 | 2015-06-24 | 将SOAP转换为Spring远程调用的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105007265A true CN105007265A (zh) | 2015-10-28 |
Family
ID=54379788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510353976.1A Pending CN105007265A (zh) | 2015-06-24 | 2015-06-24 | 将SOAP转换为Spring远程调用的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105007265A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172110A1 (en) * | 2002-12-10 | 2003-09-11 | Oracle International Corporation | Methods and apparatus for invoking a document style server operation using an operation name in a SOAPAction header |
CN103455335A (zh) * | 2013-09-12 | 2013-12-18 | 苏州灵巴巴网络科技有限公司 | 一种多级分类的Web实现方法 |
CN103488794A (zh) * | 2013-10-10 | 2014-01-01 | 苏州灵巴巴网络科技有限公司 | 一种任意属性的数据库操作的Web实现方法 |
CN104639603A (zh) * | 2014-11-27 | 2015-05-20 | 四川长虹电器股份有限公司 | 一种基于Spring MVC的RESTful服务设计方法 |
-
2015
- 2015-06-24 CN CN201510353976.1A patent/CN105007265A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172110A1 (en) * | 2002-12-10 | 2003-09-11 | Oracle International Corporation | Methods and apparatus for invoking a document style server operation using an operation name in a SOAPAction header |
CN103455335A (zh) * | 2013-09-12 | 2013-12-18 | 苏州灵巴巴网络科技有限公司 | 一种多级分类的Web实现方法 |
CN103488794A (zh) * | 2013-10-10 | 2014-01-01 | 苏州灵巴巴网络科技有限公司 | 一种任意属性的数据库操作的Web实现方法 |
CN104639603A (zh) * | 2014-11-27 | 2015-05-20 | 四川长虹电器股份有限公司 | 一种基于Spring MVC的RESTful服务设计方法 |
Non-Patent Citations (1)
Title |
---|
2CTO: "使用spring调用SOAP web service", 《WWW.2CTO.COM/KF/201409/332144.HTML》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nakazawa et al. | A bridging framework for universal interoperability in pervasive systems | |
US6757899B2 (en) | Dynamic CORBA gateway for CORBA and non-CORBA clients and services | |
Nguyen et al. | Ws2jade: Integrating web service with jade agents | |
CN101216838B (zh) | 基于web标记的xml界面配置文件分发系统及方法 | |
CN101436148B (zh) | 集成客户端及进行桌面应用与网络应用交互的方法 | |
US20030009539A1 (en) | Distributed object middleware connection method | |
WO2019163793A1 (ja) | Apiアダプタ、apiアダプタ作成方法、およびプログラム | |
JP2007109236A (ja) | ウェブサービスを介してホームネットワーク機器のサービスをホームネットワーク外部に提供する方法及び装置 | |
US20080215706A1 (en) | Mobile exchange infrastructure | |
CN110287040B (zh) | 一种远程调用服务框架的实现系统 | |
CN102694866A (zh) | 一种分布式网络环境中的服务请求代理系统 | |
JPWO2018116933A1 (ja) | Rpc変換処理システムおよびrpc変換方法 | |
CN103092602A (zh) | 软件开发套件以及终端装置 | |
CN106603593A (zh) | 一种基于适配的http调用方法及装置 | |
CN110321236B (zh) | 一种基于OpenDDS的远程方法调用实现方法 | |
CN114422350B (zh) | 一种公共云容器实例创建方法 | |
CN105007265A (zh) | 将SOAP转换为Spring远程调用的方法及系统 | |
US7792921B2 (en) | Metadata endpoint for a generic service | |
JP2008040722A (ja) | ソフトウエアモジュール連携システム及び方法 | |
CN104468645A (zh) | 一种控制方法、电子设备及一种信息传输方法、装置 | |
CN113726603A (zh) | 一种基于微服务架构下的全链路性能监测算法 | |
Sefid-Dashti et al. | Toward extending apache thrift open source to alleviate SOAP service consumption | |
CN111371823A (zh) | 一种非web场景下客户端访问微服务的方法 | |
Luo et al. | Study on computing grid distributed middleware and its application | |
CN102143181B (zh) | 网格环境中获取资源的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151028 |