- java.lang.Object
-
- javax.xml.ws.spi.Provider
-
public abstract class Provider extends Object
ServiceDelegate和Endpoint对象的服务提供商。- 从以下版本开始:
- 1.6,JAX-WS 2.0
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedProvider()创建一个新的Provider实例
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract EndpointcreateAndPublishEndpoint(String address, Object implementor)创建并发布具有指定地址和实现对象的端点对象。EndpointcreateAndPublishEndpoint(String address, Object implementor, WebServiceFeature... features)创建并发布具有指定地址,实现对象和Web服务功能的端点对象。EndpointcreateEndpoint(String bindingId, Class<?> implementorClass, Invoker invoker, WebServiceFeature... features)使用提供的绑定,实现类,调用者和Web服务功能创建端点对象。abstract EndpointcreateEndpoint(String bindingId, Object implementor)使用提供的绑定和实现对象创建端点对象。EndpointcreateEndpoint(String bindingId, Object implementor, WebServiceFeature... features)使用提供的绑定,实现对象和Web服务功能创建端点对象。abstract ServiceDelegatecreateServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass)创建服务委托对象。ServiceDelegatecreateServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass, WebServiceFeature... features)创建服务委托对象。abstract W3CEndpointReferencecreateW3CEndpointReference(String address, QName serviceName, QName portName, List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters)工厂方法创建一个W3CEndpointReference。W3CEndpointReferencecreateW3CEndpointReference(String address, QName interfaceName, QName serviceName, QName portName, List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters, List<Element> elements, Map<QName,String> attributes)工厂方法创建一个W3CEndpointReference。abstract <T> TgetPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)getPort方法返回代理。static Providerprovider()创建一个新的提供者对象。abstract EndpointReferencereadEndpointReference(Source eprInfoset)从eprInfoset包含的信息集读取一个EndpointReference。
-
-
-
方法详细信息
-
provider
public static Provider provider()
创建一个新的提供者对象。用于定位要使用的提供者子类的算法包括以下步骤:
- 使用由
ServiceLoader类定义的服务提供商加载工具,尝试使用default loading mechanism查找并加载Provider服务的实现 。 - 使用配置文件“jaxws.properties”。 该文件采用标准
Properties格式,通常位于Java安装的conf目录中。 它包含具有密钥javax.xml.ws.spi.Provider的实现类的完全限定名称。 - 如果定义了名称为
javax.xml.ws.spi.Provider的系统属性,则将其值用作实现类的名称。 - 最后,使用平台默认实现。
- 结果
- 提供者对象
- 使用由
-
createServiceDelegate
public abstract ServiceDelegate createServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass)
创建服务委托对象。- 参数
-
wsdlDocumentLocation- 指向服务的WSDL文档的URL,如果没有,null。 -
serviceName- 服务的合格名称。 -
serviceClass- 服务类,必须是javax.xml.ws.Service或其子类。 - 结果
- 新创建的服务委托。
-
createServiceDelegate
public ServiceDelegate createServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass, WebServiceFeature... features)
创建服务委托对象。- 参数
-
wsdlDocumentLocation- 指向服务的WSDL文档的URL,如果没有,null。 -
serviceName- 服务的限定名称。 -
serviceClass- 服务类,必须是javax.xml.ws.Service或其子类。 -
features- 必须在服务上配置的Web Service功能。 如果提供程序不了解某项功能,则必须抛出WebServiceException异常。 - 结果
- 新创建的服务委托。
- 从以下版本开始:
- 1.7,JAX-WS 2.2
-
createEndpoint
public abstract Endpoint createEndpoint(String bindingId, Object implementor)
使用提供的绑定和实现对象创建端点对象。- 参数
-
bindingId- 指定所需绑定的URI(例如SOAP / HTTP) -
implementor- 将要调度传入请求的服务实现对象。 相应的类必须使用所有必要的Web服务注释进行注释。 - 结果
- 新创建的端点。
-
createAndPublishEndpoint
public abstract Endpoint createAndPublishEndpoint(String address, Object implementor)
创建并发布具有指定地址和实现对象的端点对象。- 参数
-
address- 指定要使用的地址和传输/协议的URI。 http:URI必须导致使用SOAP 1.1 / HTTP绑定。 实现可能支持其他URI方案。 -
implementor- 将要调度传入请求的服务实现对象。 相应的类必须使用所有必要的Web服务注释进行注释。 - 结果
- 新创建的端点。
-
readEndpointReference
public abstract EndpointReference readEndpointReference(Source eprInfoset)
从eprInfoset包含的信息集读取一个EndpointReference。- 参数
-
eprInfoset- 用于EndpointReference的信息集 - 结果
-
EndpointReference从eprInfoset解eprInfoset。 此方法永远不会返回null。 - 异常
-
WebServiceException- 如果从指定的eprInfoset创建EndpointReference有错误。 -
NullPointerException- 如果给出了nulleprInfoset值。 - 从以下版本开始:
- 1.6,JAX-WS 2.1
-
getPort
public abstract <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort方法返回代理。 如果endpointReference有任何参考参数,那么这些参考参数必须在发送到端点的所有消息上显示为SOAP头,表示它们是参考参数。 参数serviceEndpointInterface指定返回的代理支持的服务端点接口。 参数endpointReference指定将由返回的代理调用的端点。 在实现此方法时,JAX-WS运行时系统负责从serviceEndpointInterface和EndpointReference的WSDL元数据中选择协议绑定(和端口)并配置代理。 对于成功返回代理的方法,WSDL元数据必须可用,并且endpointReference必须包含一个理解为serviceName元数据的实现。- 参数类型
-
T- 服务端点接口 - 参数
-
endpointReference- 返回的代理将调用的EndpointReference。 -
serviceEndpointInterface- 服务端点接口 -
features- 要在代理上配置的WebServiceFeatures的列表。features参数中不支持的功能将具有默认值。 - 结果
- 支持指定服务端点接口的Object Proxy实例
- 异常
-
WebServiceException-- 如果在创建代理时出现错误
- 如果这个方法需要有任何遗漏的WSDL元数据}
- 如果这个
endpointReference是非法的 - 如果指定了非法的
serviceEndpointInterface - 如果启用了与该端口不兼容或不受支持的功能。
- 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
WebServiceFeature
-
createW3CEndpointReference
public abstract W3CEndpointReference createW3CEndpointReference(String address, QName serviceName, QName portName, List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters)
工厂方法创建一个W3CEndpointReference。通过指定
address属性以及任何其他所需的属性,可以使用此方法为任何端点创建一个W3CEndpointReference。 此方法也可用于为同一Java EE应用程序发布的端点创建一个W3CEndpointReference。 这样做address可以提供财产或这种方法能自动判断address由同一个Java EE应用程序公布,并通过识别端点的serviceName和portName性能。 如果address是null,而serviceName和portName不能识别同一Java EE应用程序发布的端点,javax.lang.IllegalStateException必须抛出一个javax.lang.IllegalStateException。- 参数
-
address- 指定目标端点的地址 -
serviceName- WSDL中服务的合格名称。 -
portName- WSDL中端点的合格名称。 -
metadata-应该被添加到元素列表W3CEndpointReference实例wsa:metadata元件。 -
wsdlDocumentLocation- 服务的WSDL文档位置的URL。 -
referenceParameters- 与返回的EndpointReference实例相关联的参考参数。 - 结果
-
在
W3CEndpointReference从创建serviceName,portName,metadata,wsdlDocumentLocation和referenceParameters。 此方法从不返回null。 - 异常
-
IllegalStateException-- 如果
address,serviceName和portName都是null。 - 如果
serviceName服务是null,而portName不是null。 - 如果
address属性为null,并且serviceName和portName未指定由同一Java EE应用程序发布的有效端点。 - 如果
serviceName不是null并且不在指定的WSDL中。 - 如果
portName端口不是null并且它不存在于WSDL中的serviceName服务中。 - 如果
wsdlDocumentLocation不是null,并不代表有效的WSDL。
- 如果
-
WebServiceException- 如果在创建W3CEndpointReference时发生错误。 - 从以下版本开始:
- 1.6,JAX-WS 2.1
-
createW3CEndpointReference
public W3CEndpointReference createW3CEndpointReference(String address, QName interfaceName, QName serviceName, QName portName, List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters, List<Element> elements, Map<QName,String> attributes)
工厂方法创建一个W3CEndpointReference。 使用此方法,可以使用扩展元素和属性创建一个W3CEndpointReference实例。Provider实现必须覆盖默认实现。该方法可以用于为任何端点创建一个
W3CEndpointReference,通过指定address属性以及任何其他所需的属性。 此方法也可用于为同一Java EE应用程序发布的端点创建一个W3CEndpointReference。 这样做address可以提供财产或这种方法能自动判断address由同一个Java EE应用程序公布,并通过识别端点的serviceName个portName化子性质。 如果address是null,而serviceName和portName没有标识同一Java EE应用程序发布的端点,javax.lang.IllegalStateException必须抛出一个javax.lang.IllegalStateException。- 参数
-
address- 指定目标端点的地址 -
interfaceName-wsam:InterfaceName元素中的wsa:Metadata元素。 -
serviceName- WSDL中服务的合格名称。 -
portName- WSDL中端点的合格名称。 -
metadata- 应该添加到W3CEndpointReference实例的元素的W3CEndpointReferencewsa:metadata元素。 -
wsdlDocumentLocation- 服务的WSDL文档位置的URL。 -
referenceParameters- 与返回的EndpointReference实例关联的引用参数。 -
elements- 与返回的EndpointReference实例关联的扩展元素。 -
attributes- 与返回的EndpointReference实例关联的扩展属性。 - 结果
-
在
W3CEndpointReference从创建serviceName,portName,metadata,wsdlDocumentLocation和referenceParameters。 此方法从不返回null。 - 异常
-
IllegalStateException-- 如果
address,serviceName和portName都是null。 - 如果
serviceName服务是null,而portName不是null。 - 如果
address属性为null,并且serviceName和portName不指定由同一Java EE应用程序发布的有效端点。 - 如果
serviceName不是null并且不在指定的WSDL中。 - 如果
portName端口不是null并且在WSDL中不存在serviceName服务。 - 如果
wsdlDocumentLocation不是null并且不表示有效的WSDL。 - 如果
wsdlDocumentLocation不是null但wsdli:wsdlLocation的命名空间名称无法从可用的元数据中获取。
- 如果
-
WebServiceException- 如果在创建W3CEndpointReference时发生错误。 - 从以下版本开始:
- 1.7,JAX-WS 2.2
-
createAndPublishEndpoint
public Endpoint createAndPublishEndpoint(String address, Object implementor, WebServiceFeature... features)
创建并发布具有指定地址,实现对象和Web服务功能的端点对象。Provider实现必须覆盖默认实现。- 参数
-
address- 指定要使用的地址和传输/协议的URI。 http:URI必须导致使用SOAP 1.1 / HTTP绑定。 实现可能支持其他URI方案。 -
implementor- 将要调度传入请求的服务实现对象。 相应的类必须使用所有必要的Web服务注释进行注释。 -
features- 要在端点上配置的WebServiceFeatures的列表。features参数中不支持的功能将具有默认值。 - 结果
- 新创建的端点。
- 从以下版本开始:
- 1.7,JAX-WS 2.2
-
createEndpoint
public Endpoint createEndpoint(String bindingId, Object implementor, WebServiceFeature... features)
使用提供的绑定,实现对象和Web服务功能创建端点对象。Provider实现必须覆盖默认实现。- 参数
-
bindingId- 指定所需绑定的URI(例如SOAP / HTTP) -
implementor- 将要调度传入请求的服务实现对象。 相应的类必须使用所有必要的Web服务注释进行注释。 -
features- 要在端点上配置的WebServiceFeatures的列表。features参数中不支持的功能将具有默认值。 - 结果
- 新创建的端点。
- 从以下版本开始:
- 1.7,JAX-WS 2.2
-
createEndpoint
public Endpoint createEndpoint(String bindingId, Class<?> implementorClass, Invoker invoker, WebServiceFeature... features)
使用提供的绑定,实现类,调用者和Web服务功能创建端点对象。 容器通常使用它来创建Endpoint对象。Provider实现必须覆盖默认实现。- 参数
-
bindingId- 指定所需绑定(例如SOAP / HTTP)的URI。 可以为null。 -
implementorClass- 必须使用所有必需的Web服务注释注释的服务实现类。 -
invoker- 对服务实例进行实际调用。 -
features- 要在端点上配置的WebServiceFeatures的列表。features参数中不支持的功能将具有默认值。 - 结果
- 新创建的端点。
- 从以下版本开始:
- 1.7, JAX-WS 2.2
-
-