AbstractJaxWsServiceExporter (Spring Framework 3.2.1.RELEASE API)
Date: 2013-01-24

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
    Modifier and Type | Method and Description
    --- | ---
    `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`