- java.lang.Object
-
- javax.xml.ws.Service
-
public class Service extends Object
Service
对象提供Web服务的客户端视图。Service
作为以下工厂:- 用于目标服务端点的代理。
- 用于动态面向消息的调用远程操作的实例为
Dispatch
。
服务可用的端口可以使用
getPorts
方法枚举。 或者,您可以将服务端点接口传递到一元getPort
方法,并让运行时选择兼容的端口。用于通过创建的所有对象处理程序链
Service
可以通过来设置HandlerResolver
。可以在服务上设置一个
Executor
,以便更好地控制用于分派异步回调的线程。 例如,通过创建ThreadPoolExecutor
并将其注册到服务,可以启用具有某些参数的线程池。- 从以下版本开始:
- 1.6,JAX-WS 2.0
- 另请参见:
-
Provider
,HandlerResolver
,Executor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Service.Mode
动态客户端或服务的方向。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addPort(QName portName, String bindingId, String endpointAddress)
为服务创建一个新的端口。static Service
create(URL wsdlDocumentLocation, QName serviceName)
创建一个Service
实例。static Service
create(URL wsdlDocumentLocation, QName serviceName, WebServiceFeature... features)
创建一个Service
实例。static Service
create(QName serviceName)
创建一个Service
实例。static Service
create(QName serviceName, WebServiceFeature... features)
创建一个Service
实例。<T> Dispatch<T>
createDispatch(QName portName, Class<T> type, Service.Mode mode)
创建一个Dispatch
实例,供客户选择的对象使用。<T> Dispatch<T>
createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个Dispatch
实例,供客户选择的对象使用。Dispatch<Object>
createDispatch(QName portName, JAXBContext context, Service.Mode mode)
创建一个用于JAXB生成的对象的Dispatch
实例。Dispatch<Object>
createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
创建一个用于JAXB生成的对象的Dispatch
实例。<T> Dispatch<T>
createDispatch(EndpointReference endpointReference, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个Dispatch
实例以供客户选择的对象使用。Dispatch<Object>
createDispatch(EndpointReference endpointReference, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
创建一个用于JAXB生成的对象的Dispatch
实例。Executor
getExecutor()
返回此Service
实例的执行Service
。HandlerResolver
getHandlerResolver()
返回配置的处理程序解析器。<T> T
getPort(Class<T> serviceEndpointInterface)
getPort
方法返回代理。<T> T
getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。<T> T
getPort(QName portName, Class<T> serviceEndpointInterface)
getPort
方法返回代理。<T> T
getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。<T> T
getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)
getPort
方法返回代理。Iterator<QName>
getPorts()
返回Iterator
的QName
的服务端点列表QName
服务分组QName
getServiceName()
获取此服务的名称。URL
getWSDLDocumentLocation()
获取此服务的WSDL文档的位置。void
setExecutor(Executor executor)
设置这个Service
实例的执行器。void
setHandlerResolver(HandlerResolver handlerResolver)
设置HandlerResolver
此Service
实例。
-
-
-
构造方法详细信息
-
Service
protected Service(URL wsdlDocumentLocation, QName serviceName)
创建一个Service
。 指定的WSDL文档位置和服务限定名必须唯一标识一个wsdl:service
元素。- 参数
-
wsdlDocumentLocation
-URL
为服务的WSDL文档位置 -
serviceName
-QName
为服务
-
Service
protected Service(URL wsdlDocumentLocation, QName serviceName, WebServiceFeature... features)
创建一个Service
。 创建的实例配置了Web服务功能。 指定的WSDL文档位置和服务限定名必须唯一标识一个wsdl:service
元素。- 参数
-
wsdlDocumentLocation
-URL
为服务的WSDL文档位置 -
serviceName
-QName
为服务 -
features
- 必须在服务上配置的Web Service功能。 如果提供程序不了解某项功能,则必须抛出WebServiceException异常。
-
-
方法详细信息
-
getPort
public <T> T getPort(QName portName, Class<T> serviceEndpointInterface)
getPort
方法返回代理。 服务客户端使用此代理来调用目标服务端点上的操作。serviceEndpointInterface
指定创建的动态代理实例支持的服务端点接口。- 参数类型
-
T
- 服务端点接口。 - 参数
-
portName
- WSDL服务描述中服务端点的合格名称。 -
serviceEndpointInterface
- 动态代理实例支持的服务端点接口。 - 结果
- 支持指定服务端点接口的Object Proxy实例。
- 异常
-
WebServiceException
- 在以下情况下抛出此异常:- 如果创建代理时出现错误。
- 如果此方法需要缺少WSDL元数据。
- 如果指定非法的
serviceEndpointInterface
或portName
。
- 另请参见:
-
Proxy
,InvocationHandler
-
getPort
public <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 <T> T getPort(Class<T> serviceEndpointInterface)
getPort
方法返回代理。 参数serviceEndpointInterface
指定返回代理支持的服务端点接口。 在实现该方法时,JAX-WS运行时系统负责选择协议绑定(和端口)并相应地配置代理。 返回的代理不应由客户机重新配置。- 参数类型
-
T
- 服务端点接口。 - 参数
-
serviceEndpointInterface
- 服务端点接口。 - 结果
- 支持指定服务端点接口的对象实例。
- 异常
-
WebServiceException
-- 如果在创建代理时出现错误。
- 如果此方法需要缺少WSDL元数据。
- 如果指定了非法的
serviceEndpointInterface
。
-
getPort
public <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
-
getPort
public <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
-
addPort
public void addPort(QName portName, String bindingId, String endpointAddress)
为服务创建一个新的端口。 以此方式创建的端口不包含WSDL端口类型信息,只能用于创建Dispatch
实例。- 参数
-
portName
- 目标服务端点的合格名称。 -
bindingId
- 绑定的字符串标识符。 -
endpointAddress
- 作为URI的目标服务端点的地址。 - 异常
-
WebServiceException
- 如果创建端口有任何错误。 - 另请参见:
-
SOAPBinding.SOAP11HTTP_BINDING
,SOAPBinding.SOAP12HTTP_BINDING
,HTTPBinding.HTTP_BINDING
-
createDispatch
public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode)
创建一个Dispatch
实例,供客户选择的对象使用。- 参数类型
-
T
- 消息或有效载荷的类型 - 参数
-
portName
- 目标服务端点的合格名称 -
type
- 用于消息或消息有效载荷的对象类。 实现都必须支持javax.xml.transform.Source
,javax.xml.soap.SOAPMessage
和javax.activation.DataSource
,这取决于所使用的绑定。 -
mode
- 控制创建的调度实例是消息还是有效负载,即客户端是否使用完整的协议消息或消息有效载荷。 例如,当使用SOAP协议时,此参数控制客户端是否使用SOAP消息或SOAP主体的内容。 当类型为SOAPMessage时,模式必须为MESSAGE。 - 结果
- 调度实例。
- 异常
-
WebServiceException
- 如果在创建Dispatch
对象时有任何错误。 - 另请参见:
-
Source
,SOAPMessage
-
createDispatch
public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features)
创建一个Dispatch
实例,供客户选择的对象使用。- 参数类型
-
T
- 消息或有效载荷的类型 - 参数
-
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 <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
- 消息或有效载荷的类型 - 参数
-
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 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 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 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 QName getServiceName()
获取此服务的名称。- 结果
- 此服务的合格名称
-
getPorts
public Iterator<QName> getPorts()
返回一个Iterator
的QName
的服务端点列表QName
服务分组- 结果
-
返回
java.util.Iterator
,元素类型为javax.xml.namespace.QName
。 - 异常
-
WebServiceException
- 如果此Service类无法访问所需的WSDL元数据。
-
getWSDLDocumentLocation
public URL getWSDLDocumentLocation()
获取此服务的WSDL文档的位置。- 结果
- 此服务的WSDL文档的位置的URL。
-
getHandlerResolver
public HandlerResolver getHandlerResolver()
返回配置的处理程序解析器。- 结果
-
HandlerResolver
HandlerResolver
被这个Service
实例使用,或者如果没有的话是null
。
-
setHandlerResolver
public void setHandlerResolver(HandlerResolver handlerResolver)
设置HandlerResolver
此Service
实例。处理程序解析器(如果存在)将为创建的每个代理或分派实例调用一次,并且解析器返回的处理程序链将在实例上设置。
- 参数
-
handlerResolver
- 用于所有随后创建的代理/调度对象的HandlerResolver
。 - 另请参见:
-
HandlerResolver
-
getExecutor
public Executor getExecutor()
返回这个Service
实例的执行器。 执行器用于需要回调的所有异步调用。- 结果
-
用于调用回调的
java.util.concurrent.Executor
。 - 另请参见:
-
Executor
-
setExecutor
public void setExecutor(Executor executor)
设置这个Service
实例的执行器。 执行器用于需要回调的所有异步调用。- 参数
-
executor
- 用于调用回调的java.util.concurrent.Executor
。 - 异常
-
SecurityException
- 如果实例不支持以安全原因设置执行程序(例如缺少必需的权限)。 - 另请参见:
-
Executor
-
create
public static Service create(URL wsdlDocumentLocation, QName serviceName)
创建一个Service
实例。 指定的WSDL文档位置和服务限定名必须唯一标识一个wsdl:service
元素。- 参数
-
wsdlDocumentLocation
-URL
,用于服务的WSDL文档位置 -
serviceName
-QName
为服务 - 结果
- 服务实例
- 异常
-
WebServiceException
- 创建指定服务时是否有任何错误。
-
create
public static Service create(URL wsdlDocumentLocation, QName serviceName, WebServiceFeature... features)
创建一个Service
实例。 创建的实例配置了Web服务功能。 指定的WSDL文档位置和服务限定名必须唯一标识一个wsdl:service
元素。- 参数
-
wsdlDocumentLocation
-URL
为服务的WSDL文档位置 -
serviceName
-QName
为服务 -
features
- 必须在服务上配置的Web Service功能。 如果提供程序不了解某项功能,则必须抛出WebServiceException异常。 - 结果
- 配置了请求的Web服务功能的服务实例
- 异常
-
WebServiceException
- 创建指定服务时是否有任何错误。 - 从以下版本开始:
- 1.7,JAX-WS 2.2
-
create
public static Service create(QName serviceName)
创建一个Service
实例。- 参数
-
serviceName
-QName
为服务 - 结果
- 服务实例
- 异常
-
WebServiceException
- 创建指定服务时是否有任何错误
-
create
public static Service create(QName serviceName, WebServiceFeature... features)
创建一个Service
实例。 创建的实例配置了Web服务功能。- 参数
-
serviceName
-QName
为服务 -
features
- 必须在服务上配置的Web Service功能。 如果提供程序不了解某项功能,则必须抛出WebServiceException异常。 - 结果
- 配置了请求的Web服务功能的服务实例
- 异常
-
WebServiceException
- 创建指定服务时是否有任何错误 - 从以下版本开始:
- 1.7,JAX-WS 2.2
-
-