org.springframework.remoting.jaxws
Class AbstractJaxWsServiceExporter

java.lang.Object
  extended by org.springframework.remoting.jaxws.AbstractJaxWsServiceExporter
All Implemented Interfaces:
BeanFactoryAware, DisposableBean, InitializingBean
Direct Known Subclasses:
SimpleHttpServerJaxWsServiceExporter, SimpleJaxWsServiceExporter

public abstract class AbstractJaxWsServiceExporter
extends Object
implements BeanFactoryAware, InitializingBean, DisposableBean

Abstract exporter for JAX-WS services, autodetecting annotated service beans (through the JAX-WS WebService annotation). Compatible with JAX-WS 2.0, 2.1 and 2.2.

Subclasses need to implement the publishEndpoint(javax.xml.ws.Endpoint, javax.jws.WebService) template methods for actual endpoint exposure.

Since:
2.5.5
Author:
Juergen Hoeller
See Also:
WebService, Endpoint, SimpleJaxWsServiceExporter, SimpleHttpServerJaxWsServiceExporter

Constructor Summary
AbstractJaxWsServiceExporter()
           
 
Method Summary
 void afterPropertiesSet()
          Immediately publish all endpoints when fully configured.
protected  Endpoint createEndpoint(Object bean)
          Create the actual Endpoint instance.
 void destroy()
          Stops all published endpoints, taking the web services offline.
protected abstract  void publishEndpoint(Endpoint endpoint, WebService annotation)
          Actually publish the given endpoint.
protected abstract  void publishEndpoint(Endpoint endpoint, WebServiceProvider annotation)
          Actually publish the given provider endpoint.
 void publishEndpoints()
          Publish all WebService annotated beans in the containing BeanFactory.
 void setBeanFactory(BeanFactory beanFactory)
          Obtains all web service beans and publishes them as JAX-WS endpoints.
 void setBindingType(String bindingType)
          Specify the binding type to use, overriding the value of the JAX-WS BindingType annotation.
 void setEndpointProperties(Map<String,Object> endpointProperties)
          Set the property bag for the endpoint, including properties such as "javax.xml.ws.wsdl.service" or "javax.xml.ws.wsdl.port".
 void setExecutor(Executor executor)
          Set the JDK concurrent executor to use for dispatching incoming requests to exported service instances.
 void setWebServiceFeatures(Object[] webServiceFeatures)
          Allows for providing JAX-WS 2.2 WebServiceFeature specifications: in the form of actual WebServiceFeature objects, WebServiceFeature Class references, or WebServiceFeature class names.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractJaxWsServiceExporter

public AbstractJaxWsServiceExporter()
Method Detail

setEndpointProperties

public void setEndpointProperties(Map<String,Object> endpointProperties)
Set the property bag for the endpoint, including properties such as "javax.xml.ws.wsdl.service" or "javax.xml.ws.wsdl.port".

See Also:
Endpoint.setProperties(java.util.Map), Endpoint.WSDL_SERVICE, Endpoint.WSDL_PORT

setExecutor

public void setExecutor(Executor executor)
Set the JDK concurrent executor to use for dispatching incoming requests to exported service instances.

See Also:
Endpoint.setExecutor(java.util.concurrent.Executor)

setBindingType

public void setBindingType(String bindingType)
Specify the binding type to use, overriding the value of the JAX-WS BindingType annotation.


setWebServiceFeatures

public void setWebServiceFeatures(Object[] webServiceFeatures)
Allows for providing JAX-WS 2.2 WebServiceFeature specifications: in the form of actual WebServiceFeature objects, WebServiceFeature Class references, or WebServiceFeature class names.


setBeanFactory

public void setBeanFactory(BeanFactory beanFactory)
Obtains all web service beans and publishes them as JAX-WS endpoints.

Specified by:
setBeanFactory in interface BeanFactoryAware
Parameters:
beanFactory - owning BeanFactory (never null). The bean can immediately call methods on the factory.
See Also:
BeanInitializationException

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Immediately publish all endpoints when fully configured.

Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception - in the event of misconfiguration (such as failure to set an essential property) or if initialization fails.
See Also:
publishEndpoints()

publishEndpoints

public void publishEndpoints()
Publish all WebService annotated beans in the containing BeanFactory.

See Also:
publishEndpoint(javax.xml.ws.Endpoint, javax.jws.WebService)

createEndpoint

protected Endpoint createEndpoint(Object bean)
Create the actual Endpoint instance.

Parameters:
bean - the service object to wrap
Returns:
the Endpoint instance
See Also:
Endpoint.create(Object), Endpoint.create(String, Object)

publishEndpoint

protected abstract void publishEndpoint(Endpoint endpoint,
                                        WebService annotation)
Actually publish the given endpoint. To be implemented by subclasses.

Parameters:
endpoint - the JAX-WS Endpoint object
annotation - the service bean's WebService annotation

publishEndpoint

protected abstract void publishEndpoint(Endpoint endpoint,
                                        WebServiceProvider annotation)
Actually publish the given provider endpoint. To be implemented by subclasses.

Parameters:
endpoint - the JAX-WS Provider Endpoint object
annotation - the service bean's WebServiceProvider annotation

destroy

public void destroy()
Stops all published endpoints, taking the web services offline.

Specified by:
destroy in interface DisposableBean