- java.lang.Object
-
- javax.xml.ws.spi.ServiceDelegate
-
public abstract class ServiceDelegate extends Object
服务代表在内部使用Service
对象来允许JAX-WS实现的可插拔性。每个
Service
对象都有自己的委托,使用Provider.createServiceDelegate(java.net.URL, javax.xml.namespace.QName, java.lang.Class<? extends javax.xml.ws.Service>)
方法创建。 AService
对象将其所有实例方法委托给其委托。
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
ServiceDelegate()
默认构造函数。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract void
addPort(QName portName, String bindingId, String endpointAddress)
为服务创建一个新的端口。abstract <T> Dispatch<T>
createDispatch(QName portName, Class<T> type, Service.Mode mode)
创建一个Dispatch
实例,供用户选择的对象使用。abstract <T> Dispatch<T>
createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个用于用户选择的对象的Dispatch
实例。abstract Dispatch<Object>
createDispatch(QName portName, JAXBContext context, Service.Mode mode)
创建一个用于与JAXB生成的对象一起使用的Dispatch
实例。abstract Dispatch<Object>
createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
创建一个用于JAXB生成的对象的Dispatch
实例。abstract <T> Dispatch<T>
createDispatch(EndpointReference endpointReference, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个Dispatch
实例,供用户选择的对象使用。abstract Dispatch<Object>
createDispatch(EndpointReference endpointReference, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
创建一个用于JAXB生成的对象的Dispatch
实例。abstract Executor
getExecutor()
返回这个Service
实例的执行器。abstract HandlerResolver
getHandlerResolver()
返回配置的处理程序解析器。abstract <T> T
getPort(Class<T> serviceEndpointInterface)
getPort
方法返回代理。abstract <T> T
getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。abstract <T> T
getPort(QName portName, Class<T> serviceEndpointInterface)
getPort
方法返回代理。abstract <T> T
getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回一个代理。abstract <T> T
getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回一个代理。abstract Iterator<QName>
getPorts()
对于由此服务分组的QName
个服务端点列表,返回Iterator
abstract QName
getServiceName()
获取此服务的名称。abstract URL
getWSDLDocumentLocation()
获取此服务的WSDL文档的位置。abstract void
setExecutor(Executor executor)
设置这个Service
实例的执行器。abstract void
setHandlerResolver(HandlerResolver handlerResolver)
设置HandlerResolver
此Service
实例。
-
-
-
方法详细信息
-
getPort
public abstract <T> T getPort(QName portName, Class<T> serviceEndpointInterface)
getPort
方法返回一个代理。 服务客户端使用此代理来调用目标服务端点上的操作。serviceEndpointInterface
指定创建的动态代理实例支持的服务端点接口。- 参数类型
-
T
- 服务端点接口 - 参数
-
portName
- WSDL服务描述中服务端点的合格名称 -
serviceEndpointInterface
- 动态代理支持的服务端点接口 - 结果
- 支持指定服务端点接口的Object Proxy实例
- 异常
-
WebServiceException
- 在以下情况下抛出此异常:- 如果创建代理时出现错误
- 如果此方法需要缺少WSDL元数据
- 如果指定非法的
serviceEndpointInterface
或portName
- 另请参见:
-
Proxy
,InvocationHandler
-
getPort
public abstract <T> T getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。 服务客户端使用此代理来调用目标服务端点上的操作。serviceEndpointInterface
指定创建的动态代理实例支持的服务端点接口。- 参数类型
-
T
- 服务端点接口 - 参数
-
portName
- WSDL服务描述中服务端点的合格名称 -
serviceEndpointInterface
- 动态代理或实例支持的服务端点接口 -
features
- 要在代理上配置的WebServiceFeatures的列表。features
参数中不支持的功能将具有默认值。 - 结果
- 支持指定服务端点接口的Object Proxy实例
- 异常
-
WebServiceException
- 在以下情况下抛出此异常:- 如果创建代理时出现错误
- 如果此方法需要缺少WSDL元数据
- 如果指定非法的
serviceEndpointInterface
或portName
- 如果启用了与该端口不兼容或不受支持的功能。
- 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
Proxy
,InvocationHandler
,WebServiceFeature
-
getPort
public abstract <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。 参数endpointReference
指定将由返回的代理调用的端点。 如果在endpointReference
中有参考参数,那么这些引用参数必须在发送到端点的所有消息上显示为SOAP头,表示它们是参考参数。endpointReference's
地址必须用于端点上的调用。 参数serviceEndpointInterface
指定返回的代理支持的服务端点接口。 在此方法的实施中,JAX-WS运行时系统需要选择协议绑定(和端口),并从与此相关联的WSDL相应地配置代理的责任Service
实例或从元数据endpointReference
。 如果此Service
实例具有WSDL,并且endpointReference
元数据也具有WSDL,则必须使用此实例的WSDL。 如果此Service
实例没有WSDL,并且endpointReference
确实有一个WSDL,则可以使用来自endpointReference
的WSDL。 返回的代理不应由客户机重新配置。 如果此Service
实例具有与WSDL中包含的信息相匹配的已知代理端口,则返回该代理,否则抛出WebServiceException。调用此方法具有与以下相同的行为
port = service.getPort(portName, serviceEndpointInterface);
portName
从的元数据检索endpointReference
或从serviceEndpointInterface
和与此相关的WSDLService
实例。- 参数类型
-
T
- 服务端点接口。 - 参数
-
endpointReference
- 将由返回的代理调用的目标服务端点的EndpointReference
。 -
serviceEndpointInterface
- 服务端点接口。 -
features
- 要在代理上配置的WebServiceFeatures
的列表。features
参数中不支持的功能将具有默认值。 - 结果
- 支持指定服务端点接口的Object Proxy实例。
- 异常
-
WebServiceException
-- 如果在创建代理时出现错误。
- 如果此方法需要缺少WSDL元数据。
- 如果
endpointReference
元数据与此Service
实例的serviceName
不匹配。 - 如果
portName
不能从WSDL或提取endpointReference
的元数据。 - 如果指定无效的
endpointReference
。 - 如果指定无效的
serviceEndpointInterface
。 - 如果启用了与该端口不兼容或不受支持的功能。
- 从以下版本开始:
- 1.6,JAX-WS 2.1
-
getPort
public abstract <T> T getPort(Class<T> serviceEndpointInterface)
getPort
方法返回代理。 参数serviceEndpointInterface
指定返回的代理支持的服务端点接口。 在实现该方法时,JAX-WS运行时系统负责选择协议绑定(和端口)并相应地配置代理。 返回的代理不应由客户机重新配置。- 参数类型
-
T
- 服务端点接口 - 参数
-
serviceEndpointInterface
- 服务端点接口 - 结果
- 支持指定服务端点接口的对象实例
- 异常
-
WebServiceException
-- 如果在创建代理时出现错误
- 如果此方法需要缺少WSDL元数据
- 如果指定了非法的
serviceEndpointInterface
-
getPort
public abstract <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。 参数serviceEndpointInterface
指定返回的代理支持的服务端点接口。 在实现该方法时,JAX-WS运行时系统负责选择协议绑定(和端口)并相应地配置代理。 返回的代理不应由客户机重新配置。- 参数类型
-
T
- 服务端点接口 - 参数
-
serviceEndpointInterface
- 服务端点接口 -
features
- 要在代理上配置的WebServiceFeatures
数组。features
参数中不支持的功能将具有默认值。 - 结果
- 支持指定服务端点接口的对象实例
- 异常
-
WebServiceException
-- 如果在创建代理时出现错误
- 如果此方法需要缺少WSDL元数据
- 如果指定了非法的
serviceEndpointInterface
- 如果启用了与该端口不兼容或不受支持的功能。
- 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
WebServiceFeature
-
addPort
public abstract void addPort(QName portName, String bindingId, String endpointAddress)
为服务创建一个新的端口。 以这种方式创建的端口不包含WSDL端口类型信息,只能用于创建Dispatch
实例。- 参数
-
portName
- 目标服务端点的合格名称 -
bindingId
- 绑定的URI标识符。 -
endpointAddress
- 作为URI的目标服务端点的地址 - 异常
-
WebServiceException
- 如果创建端口有任何错误 - 另请参见:
-
SOAPBinding.SOAP11HTTP_BINDING
,SOAPBinding.SOAP12HTTP_BINDING
,HTTPBinding.HTTP_BINDING
-
createDispatch
public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode)
创建一个Dispatch
实例,供用户选择的对象使用。- 参数类型
-
T
- 用于消息或消息有效载荷的类型。 需要实施支持javax.xml.transform.Source
和javax.xml.soap.SOAPMessage
。 - 参数
-
portName
- 目标服务端点的合格名称 -
type
- 用于消息或消息有效载荷的对象类。 需要实施支持javax.xml.transform.Source
和javax.xml.soap.SOAPMessage
。 -
mode
- 控制创建的调度实例是消息还是有效负载,即用户是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制用户是否使用SOAP消息或SOAP主体的内容。 模式必须MESSAGE
当类型为SOAPMessage
。 - 结果
- 调度实例
- 异常
-
WebServiceException
- 如果在创建Dispatch
对象时有任何错误 - 另请参见:
-
Source
,SOAPMessage
-
createDispatch
public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个Dispatch
实例,供用户选择的对象使用。- 参数类型
-
T
- 用于消息或消息有效载荷的类型。 需要实施支持javax.xml.transform.Source
和javax.xml.soap.SOAPMessage
。 - 参数
-
portName
- 目标服务端点的合格名称 -
type
- 用于消息或消息有效载荷的对象类。 需要实施支持javax.xml.transform.Source
和javax.xml.soap.SOAPMessage
。 -
mode
- 控制创建的调度实例是消息还是有效负载,即用户是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制用户是否使用SOAP消息或SOAP主体的内容。 模式必须MESSAGE
当类型为SOAPMessage
。 -
features
- 要在代理上配置的WebServiceFeatures
的列表。features
参数中不支持的功能将具有默认值。 - 结果
- 调度实例
- 异常
-
WebServiceException
- 如果在创建Dispatch
对象时出现任何错误,或启用了与该端口不兼容或不支持的功能。 - 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
Source
,SOAPMessage
,WebServiceFeature
-
createDispatch
public abstract <T> Dispatch<T> createDispatch(EndpointReference endpointReference, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个Dispatch
实例,供用户选择的对象使用。 如果endpointReference
有任何参考参数,那么这些参考参数在发送到端点的所有消息上必须显示为SOAP头,表示它们是参考参数。endpointReference's
地址必须用于端点上的调用。 在实现此方法时,JAX-WS运行时系统负责选择协议绑定(和端口),并从与该Service
实例相关联的WSDL或从Service
的元数据相应地配置endpointReference
。 如果此Service
实例具有WSDL,并且endpointReference
在其元数据中也具有WSDL,则必须使用此实例的WSDL。 如果此Service
实例没有WSDL,并且endpointReference
确实具有WSDL,则可以使用来自endpointReference
的WSDL。 一个实现必须能够检索portName
从endpointReference
的元数据。此方法的行为与调用相同
dispatch = service.createDispatch(portName, type, mode, features);
portName
从WSDL或EndpointReference
元数据检索。- 参数类型
-
T
- 用于消息或消息有效载荷的对象类型。 需要实施支持javax.xml.transform.Source
和javax.xml.soap.SOAPMessage
。 - 参数
-
endpointReference
-该EndpointReference
用于将由返回调用的目标服务端点Dispatch
对象。 -
type
- 用于消息或消息有效载荷的对象类。 需要实施支持javax.xml.transform.Source
和javax.xml.soap.SOAPMessage
。 -
mode
- 控制创建的调度实例是消息还是有效负载,即用户是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制用户是否使用SOAP消息或SOAP主体的内容。 模式必须MESSAGE
当类型为SOAPMessage
。 -
features
- 要在代理上配置的WebServiceFeatures
数组。features
参数中不支持的功能将具有默认值。 - 结果
- 调度实例
- 异常
-
WebServiceException
-- 如果此方法需要缺少WSDL元数据。
- 如果
endpointReference
元数据与与此Service
实例相关联的WSDL的serviceName
或portName
不匹配。 - 如果
portName
不能从EndpointReference
元数据确定。 - 如果在创建
Dispatch
对象时有任何错误。 - 如果启用了与该端口不兼容或不受支持的功能。
- 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
Source
,SOAPMessage
,WebServiceFeature
-
createDispatch
public abstract Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode)
创建一个用于JAXB生成的对象的Dispatch
实例。- 参数
-
portName
- 目标服务端点的合格名称 -
context
- 用于编组context
消息或消息有效载荷的JAXB上下文。 -
mode
- 控制创建的调度实例是消息还是有效负载,即用户是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制用户是否使用SOAP消息或SOAP主体的内容。 - 结果
- 调度实例
- 异常
-
WebServiceException
- 如果在创建Dispatch
对象时有任何错误 - 另请参见:
-
JAXBContext
-
createDispatch
public abstract Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
创建一个用于JAXB生成的对象的Dispatch
实例。- 参数
-
portName
- 目标服务端点的合格名称 -
context
- 用于编组context
消息或消息有效载荷的JAXB上下文。 -
mode
- 控制创建的调度实例是消息还是有效负载,即用户是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制用户是否使用SOAP消息或SOAP主体的内容。 -
features
- 要在代理上配置的WebServiceFeatures
的列表。features
参数中不支持的功能将具有默认值。 - 结果
- 调度实例
- 异常
-
WebServiceException
- 如果在创建Dispatch
对象时出现任何错误,或启用了与该端口不兼容或不支持的功能。 - 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
JAXBContext
,WebServiceFeature
-
createDispatch
public abstract Dispatch<Object> createDispatch(EndpointReference endpointReference, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
创建一个用于JAXB生成的对象的Dispatch
实例。 如果在endpointReference
中有参考参数,那么这些引用参数在发送到端点的所有消息上必须显示为SOAP头,表示它们是参考参数。endpointReference's
地址必须用于端点上的调用。 在实现此方法时,JAX-WS运行时系统负责选择协议绑定(和端口),并从与该Service
实例相关联的WSDL或从Service
的元数据相应地配置endpointReference
。 如果此Service
实例具有WSDL,并且endpointReference
在其元数据中也具有WSDL,则必须使用此实例的WSDL。 如果此Service
实例没有WSDL,并且endpointReference
确实有一个WSDL,则可以使用来自endpointReference
的WSDL。 一个实现必须能够检索portName
从endpointReference
的元数据。此方法与调用相同
dispatch = service.createDispatch(portName, context, mode, features);
portName
从WSDL或endpointReference
元数据检索。- 参数
-
endpointReference
-该EndpointReference
用于将由返回调用的目标服务端点Dispatch
对象。 -
context
- 用于编组context
消息或消息有效载荷的JAXB上下文。 -
mode
- 控制创建的调度实例是消息还是有效负载,即用户是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制用户是否使用SOAP消息或SOAP主体的内容。 -
features
- 要在代理上配置的WebServiceFeatures
数组。features
参数中不支持的功能将具有默认值。 - 结果
- 调度实例
- 异常
-
WebServiceException
-- 如果此方法需要缺少WSDL元数据。
- 如果
endpointReference
元数据与该Service
实例相关联的WSDL的serviceName
或portName
不匹配。 - 如果
portName
不能从EndpointReference
元数据确定。 - 如果在创建
Dispatch
对象时有任何错误。 - 如果启用了与此端口不兼容或不受支持的功能。
- 从以下版本开始:
- 1.6,JAX-WS 2.1
- 另请参见:
-
JAXBContext
,WebServiceFeature
-
getServiceName
public abstract QName getServiceName()
获取此服务的名称。- 结果
- 此服务的合格名称
-
getPorts
public abstract Iterator<QName> getPorts()
返回Iterator
用于QName
服务分组的QName
个服务端点列表- 结果
-
返回
java.util.Iterator
,元素类型为javax.xml.namespace.QName
- 异常
-
WebServiceException
- 如果此Service类无法访问所需的WSDL元数据
-
getWSDLDocumentLocation
public abstract URL getWSDLDocumentLocation()
获取此服务的WSDL文档的位置。- 结果
- 此服务的WSDL文档的位置的URL
-
getHandlerResolver
public abstract HandlerResolver getHandlerResolver()
返回配置的处理程序解析器。- 结果
-
HandlerResolver的
HandlerResolver
正被此Service
实例,或者null
如果没有一个。
-
setHandlerResolver
public abstract void setHandlerResolver(HandlerResolver handlerResolver)
设置HandlerResolver
此Service
实例。处理程序解析器(如果存在)将为创建的每个代理或分派实例调用一次,并且解析器返回的处理程序链将在实例上设置。
- 参数
-
handlerResolver
- 用于所有随后创建的代理/调度对象的HandlerResolver
。 - 另请参见:
-
HandlerResolver
-
getExecutor
public abstract Executor getExecutor()
返回此Service
实例的执行者。 执行器用于需要回调的所有异步调用。- 结果
-
用于调用回调的
java.util.concurrent.Executor
。 - 另请参见:
-
Executor
-
setExecutor
public abstract void setExecutor(Executor executor)
设置这个Service
实例的执行器。 执行器用于需要回调的所有异步调用。- 参数
-
executor
- 用于调用回调的java.util.concurrent.Executor
。 - 异常
-
SecurityException
- 如果实例不支持以安全原因设置执行程序(例如缺少必要的权限)。 - 另请参见:
-
Executor
-
-