org.springframework.remoting.jaxws

## Class AbstractJaxWsServiceExporter

- java.lang.Object
- - org.springframework.remoting.jaxws.AbstractJaxWsServiceExporter

All Implemented Interfaces:
  Aware, 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

Constructors
Constructor and Description
`AbstractJaxWsServiceExporter()`

### Method Summary

Methods
`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<java.lang.String, java.lang.Object>)`, `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`