本文章不借鉴任何其他文章里的资料,仅为源码的直接解读和理解
这章主要介绍Binding这个接口,其来源为:Dispatch继承了BindingProvider,BindingProvider能够return Binding接口
Binding的直接描述为:“Binding接口是 JAX-WS协议bindings 的底层(base)接口。”
JAX-WS协议 概述:
“JAX-WS规范是一组XML web services的JAVA API,JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。
在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP,在使用JAX-WS过程中,开发者不需要编写任何生成和处理SOAP消息的代码。JAX-WS的运行时实现会将这些API的调用转换成为对应的SOAP消息。
在服务器端,用户只需要通过Java语言定义远程调用所需要实现的接口SEI(service endpoint interface),并提供相关的实现,通过调用JAX-WS的服务发布接口就可以将其发布为WebService接口。
当然 JAX-WS 也提供了一组针对底层消息进行操作的API调用,你可以通过Dispatch 直接使用SOAP消息或XML消息发送请求或者使用Provider处理SOAP或XML消息。
通过web service所提供的互操作环境,我们可以用JAX-WS轻松实现JAVA平台与其他编程环境(.net等)的互操作。
JAX-WS与JAX-RPC之间的关系
Sun最开始的web services的实现是JAX-RPC 1.1 (JSR 101)。这个实现是基于Java的RPC,并不完全支持schema规范,同时没有对Binding和Parsing定义标准的实现。
JAX-WS2.0 (JSR 224)是Sun新的web services协议栈,是一个完全基于标准的实现。在binding层,使用的是the Java Architecture for XML Binding (JAXB, JSR 222),在parsing层,使用的是the Streaming API for XML (StAX, JSR 173),同时它还完全支持schema规范。”
(以上介绍来源百度百科)
接下来介绍其Binding内部的3个方法
public java.util.List<javax.xml.ws.handler.Handler> getHandlerChain();
“获取一个协议binding实例副本的处理程序链。如果返回的链改名为 ‘setHandlerChain’ 需要用新的链配置binding实例。”
返回:java.util.List<javax.xml.ws.handler.Handler> 类型的处理器链
public void setHandlerChain(java.util.List<javax.xml.ws.handler.Handler> chain);
“将处理器链设置为协议binding实例”
参数:将java.util.List<javax.xml.ws.handler.Handler>作为配置项
抛出:WebServiceException
在
处理程序链的
配置
错误
抛出:java.lang.UnsupportedOperationException
如果不支持该操作。
这可能是
为了避免重写
任何
重要的
预先配置的
处理程序链
。
String getBindingID();
"得到binding实例的URL"
返回:binding的port的标示,绝不会返回null