public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory implements org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.InitializingBean
MethodInterceptor for accessing a
specific port of a JAX-WS service.
Uses either LocalJaxWsServiceFactory's facilities underneath,
or takes an explicit reference to an existing JAX-WS Service instance
(e.g. obtained via JndiObjectFactoryBean).
setPortName(java.lang.String),
setServiceInterface(java.lang.Class<?>),
Service.getPort(javax.xml.namespace.QName, java.lang.Class<T>),
RemoteAccessException,
JndiObjectFactoryBean| Constructor and Description |
|---|
JaxWsPortClientInterceptor() |
| Modifier and Type | Method and Description |
|---|---|
void |
addCustomProperty(java.lang.String name,
java.lang.Object value)
Add a custom property to this JAX-WS BindingProvider.
|
void |
afterPropertiesSet() |
protected void |
applyDefaultsFromAnnotation(WebService ann)
Initialize this client interceptor's properties from the given WebService annotation,
if necessary and possible (i.e.
|
protected java.lang.Object |
doInvoke(org.aopalliance.intercept.MethodInvocation invocation)
Perform a JAX-WS service invocation based on the given method invocation.
|
protected java.lang.Object |
doInvoke(org.aopalliance.intercept.MethodInvocation invocation,
java.lang.Object portStub)
Perform a JAX-WS service invocation on the given port stub.
|
protected java.lang.ClassLoader |
getBeanClassLoader()
Return the bean ClassLoader to use for this interceptor.
|
java.util.Map<java.lang.String,java.lang.Object> |
getCustomProperties()
Allow Map access to the custom properties to be set on the stub,
with the option to add or override specific entries.
|
java.lang.String |
getEndpointAddress()
Return the endpoint address to specify on the stub.
|
Service |
getJaxWsService()
Return a reference to an existing JAX-WS Service instance, if any.
|
java.lang.String |
getPassword()
Return the password to specify on the stub.
|
java.lang.String |
getPortName()
Return the name of the port.
|
protected QName |
getPortQName()
Return the prepared QName for the port.
|
protected java.lang.Object |
getPortStub()
Return the underlying JAX-WS port stub that this interceptor delegates to
for each method invocation on the proxy.
|
protected java.lang.Object |
getPortStub(Service service,
QName portQName)
Obtain the port stub from the given JAX-WS Service.
|
java.lang.Class<?> |
getServiceInterface()
Return the interface of the service that this factory should create a proxy for.
|
java.lang.String |
getSoapActionUri()
Return the SOAP action URI to specify on the stub.
|
java.lang.String |
getUsername()
Return the username to specify on the stub.
|
java.lang.Object |
invoke(org.aopalliance.intercept.MethodInvocation invocation) |
boolean |
isMaintainSession()
Return the "session.maintain" flag to specify on the stub.
|
protected boolean |
isPrepared()
Return whether this client interceptor has already been prepared,
i.e.
|
boolean |
isUseSoapAction()
Return the "soapaction.use" flag to specify on the stub.
|
void |
prepare()
Initialize the JAX-WS port for this interceptor.
|
protected void |
preparePortStub(java.lang.Object stub)
Prepare the given JAX-WS port stub, applying properties to it.
|
void |
setBeanClassLoader(java.lang.ClassLoader classLoader)
Set the bean ClassLoader to use for this interceptor: primarily for
building a client proxy in the
JaxWsPortProxyFactoryBean subclass. |
void |
setCustomProperties(java.util.Map<java.lang.String,java.lang.Object> customProperties)
Set custom properties to be set on the stub.
|
void |
setEndpointAddress(java.lang.String endpointAddress)
Set the endpoint address to specify on the stub.
|
void |
setJaxWsService(Service jaxWsService)
Set a reference to an existing JAX-WS Service instance,
for example obtained via
JndiObjectFactoryBean. |
void |
setLookupServiceOnStartup(boolean lookupServiceOnStartup)
Set whether to look up the JAX-WS service on startup.
|
void |
setMaintainSession(boolean maintainSession)
Set the "session.maintain" flag to specify on the stub.
|
void |
setPassword(java.lang.String password)
Set the password to specify on the stub.
|
void |
setPortFeatures(WebServiceFeature... features)
Specify WebServiceFeature objects (e.g.
|
void |
setPortName(java.lang.String portName)
Set the name of the port.
|
void |
setServiceInterface(java.lang.Class<?> serviceInterface)
Set the interface of the service that this factory should create a proxy for.
|
void |
setSoapActionUri(java.lang.String soapActionUri)
Set the SOAP action URI to specify on the stub.
|
void |
setUsername(java.lang.String username)
Set the username to specify on the stub.
|
void |
setUseSoapAction(boolean useSoapAction)
Set the "soapaction.use" flag to specify on the stub.
|
createJaxWsService, getNamespaceUri, getQName, getServiceName, getWsdlDocumentUrl, setExecutor, setHandlerResolver, setNamespaceUri, setServiceFeatures, setServiceName, setWsdlDocumentResource, setWsdlDocumentUrlpublic void setJaxWsService(@Nullable
Service jaxWsService)
JndiObjectFactoryBean.
If not set, LocalJaxWsServiceFactory's properties have to be specified.@Nullable public Service getJaxWsService()
public void setPortName(@Nullable
java.lang.String portName)
@Nullable public java.lang.String getPortName()
public void setUsername(@Nullable
java.lang.String username)
BindingProvider.USERNAME_PROPERTY@Nullable public java.lang.String getUsername()
public void setPassword(@Nullable
java.lang.String password)
BindingProvider.PASSWORD_PROPERTY@Nullable public java.lang.String getPassword()
public void setEndpointAddress(@Nullable
java.lang.String endpointAddress)
@Nullable public java.lang.String getEndpointAddress()
public void setMaintainSession(boolean maintainSession)
public boolean isMaintainSession()
public void setUseSoapAction(boolean useSoapAction)
BindingProvider.SOAPACTION_USE_PROPERTYpublic boolean isUseSoapAction()
public void setSoapActionUri(@Nullable
java.lang.String soapActionUri)
BindingProvider.SOAPACTION_URI_PROPERTY@Nullable public java.lang.String getSoapActionUri()
public void setCustomProperties(java.util.Map<java.lang.String,java.lang.Object> customProperties)
Can be populated with a String "value" (parsed via PropertiesEditor) or a "props" element in XML bean definitions.
BindingProvider.getRequestContext()public java.util.Map<java.lang.String,java.lang.Object> getCustomProperties()
Useful for specifying entries directly, for example via "customProperties[myKey]". This is particularly useful for adding or overriding entries in child bean definitions.
public void addCustomProperty(java.lang.String name,
java.lang.Object value)
name - the name of the attribute to exposevalue - the attribute value to exposeBindingProvider.getRequestContext()public void setPortFeatures(WebServiceFeature... features)
public void setServiceInterface(@Nullable
java.lang.Class<?> serviceInterface)
@Nullable public java.lang.Class<?> getServiceInterface()
public void setLookupServiceOnStartup(boolean lookupServiceOnStartup)
Default is "true". Turn this flag off to allow for late start of the target server. In this case, the JAX-WS service will be lazily fetched on first access.
public void setBeanClassLoader(@Nullable
java.lang.ClassLoader classLoader)
JaxWsPortProxyFactoryBean subclass.setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAware@Nullable protected java.lang.ClassLoader getBeanClassLoader()
public void afterPropertiesSet()
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanpublic void prepare()
protected void applyDefaultsFromAnnotation(WebService ann)
ann - the WebService annotation found on the specified service interfaceprotected boolean isPrepared()
@Nullable protected final QName getPortQName()
protected java.lang.Object getPortStub(Service service, @Nullable QName portQName)
service - the Service object to obtain the port fromportQName - the name of the desired port, if specifiedService.getPort(...)protected void preparePortStub(java.lang.Object stub)
prepare().stub - the current JAX-WS port stubsetUsername(java.lang.String),
setPassword(java.lang.String),
setEndpointAddress(java.lang.String),
setMaintainSession(boolean),
setCustomProperties(java.util.Map<java.lang.String, java.lang.Object>)@Nullable protected java.lang.Object getPortStub()
@Nullable
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation invocation)
throws java.lang.Throwable
invoke in interface org.aopalliance.intercept.MethodInterceptorjava.lang.Throwable@Nullable
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation invocation)
throws java.lang.Throwable
invocation - the AOP method invocationjava.lang.Throwable - in case of invocation failuregetPortStub(),
doInvoke(org.aopalliance.intercept.MethodInvocation, Object)@Nullable
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation invocation,
@Nullable
java.lang.Object portStub)
throws java.lang.Throwable
invocation - the AOP method invocationportStub - the RMI port stub to invokejava.lang.Throwable - in case of invocation failuregetPortStub()