- java.lang.Object
-
- javax.xml.ws.spi.Provider
-
public abstract class Provider extends Object
ServiceDelegate
和Endpoint
对象的服务提供商。- 从以下版本开始:
- 1.6,JAX-WS 2.0
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Provider()
创建一个新的Provider实例
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract Endpoint
createAndPublishEndpoint(String address, Object implementor)
创建并发布具有指定地址和实现对象的端点对象。Endpoint
createAndPublishEndpoint(String address, Object implementor, WebServiceFeature... features)
创建并发布具有指定地址,实现对象和Web服务功能的端点对象。Endpoint
createEndpoint(String bindingId, Class<?> implementorClass, Invoker invoker, WebServiceFeature... features)
使用提供的绑定,实现类,调用者和Web服务功能创建端点对象。abstract Endpoint
createEndpoint(String bindingId, Object implementor)
使用提供的绑定和实现对象创建端点对象。Endpoint
createEndpoint(String bindingId, Object implementor, WebServiceFeature... features)
使用提供的绑定,实现对象和Web服务功能创建端点对象。abstract ServiceDelegate
createServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass)
创建服务委托对象。ServiceDelegate
createServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass, WebServiceFeature... features)
创建服务委托对象。abstract W3CEndpointReference
createW3CEndpointReference(String address, QName serviceName, QName portName, List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters)
工厂方法创建一个W3CEndpointReference
。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
。abstract <T> T
getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort方法返回代理。static Provider
provider()
创建一个新的提供者对象。abstract EndpointReference
readEndpointReference(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
- 如果给出了null
eprInfoset
值。 - 从以下版本开始:
- 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
实例的元素的W3CEndpointReference
wsa: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
-
-