Java RPC 原生实现之WebService详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java RPC 原生实现之WebService 一WebService释义
WebService是一种跨语言和跨操作系统的系统间交互标准。
WebService采用SOAP协议封装数据、HTTP协议传输数据、WSDL 描述服务发布的XML格式。
二Java实现
JavaSE6内置支持WebService,可以直接用来实现远程调用,服务端通过@WebService来标记对外暴露的服务实现类,通过调用Endpoint.publish发布到指定的服务地址上。
话不多说,直接上代码更直观。
服务接口:
注意:接口上一定要加@WebService注释,否则会报如下异常,端点接口没有Web服务注释。
服务实现类(document风格):
发布服务有两种SOAPBinding风格,SOAPBinding.style.DOCUMENT 和SOAPBinding.style.RPC,默认的是DOCUMENT。
我们先以默认的风格来实现。
@WebService注解属性释义:
endpointInterface:服务接口, 指定做SEI(Service EndPoint Interface)服务端点接口。
name:指定XML Web Service的名称。
默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。
缺省值为Java 类或接口的非限定名称。
serviceName:对外发布的服务名,指定Web Service 的服务名称:wsdl:service。
缺省值为Java 类的简单名称+ Service。
(字符串)。
targetNamespace:指定名称空间,默认使用接口实现类的包名反缀。
portName:wsdl:portName。
缺省值为+Port。
发布服务:
运行程序,看服务发布是否成功
当看到上图信息时,表明服务发布成功。
图中标识的地方,可以结合@WebService释义看看是否符合。
客户端调用:
运行程序,会得到如下结果:
接着,我们看下以RPC风格实现的代码:
服务实现类(RPC风格):
发布服务代码上述已给出,来看下rpc风格发布的服务WSDL和document有何异同
三总结
WebService使用SOAP协议实现跨编程语言和跨操作系统平台,因为封装了底层网络通信细节,因此使用起来较为简单,作为一个Java开发者,掌握此项技术是非常有必要的。