org.springframework.remoting.jaxws
Class SimpleJaxWsServiceExporter

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

public class SimpleJaxWsServiceExporter
extends AbstractJaxWsServiceExporter

Simple exporter for JAX-WS services, autodetecting annotated service beans (through the JAX-WS WebService annotation) and exporting them with a configured base address (by default "http://localhost:8080/") using the JAX-WS provider's built-in publication support. The full address for each service will consist of the base address with the service name appended (e.g. "http://localhost:8080/OrderService").

Note that this exporter will only work if the JAX-WS runtime actually supports publishing with an address argument, i.e. if the JAX-WS runtime ships an internal HTTP server. This is the case with the JAX-WS runtime that's inclued in Sun's JDK 1.6 but not with the standalone JAX-WS 2.1 RI.

For explicit configuration of JAX-WS endpoints with Sun's JDK 1.6 HTTP server, consider using SimpleHttpServerJaxWsServiceExporter!

Since:
2.5
Author:
Juergen Hoeller
See Also:
WebService, Endpoint.publish(String), SimpleHttpServerJaxWsServiceExporter

Field Summary
static String DEFAULT_BASE_ADDRESS
           
 
Constructor Summary
SimpleJaxWsServiceExporter()
           
 
Method Summary
protected  String calculateEndpointAddress(Endpoint endpoint, String serviceName)
          Calculate the full endpoint address for the given endpoint.
protected  void publishEndpoint(Endpoint endpoint, WebService annotation)
          Actually publish the given endpoint.
protected  void publishEndpoint(Endpoint endpoint, WebServiceProvider annotation)
          Actually publish the given provider endpoint.
 void setBaseAddress(String baseAddress)
          Set the base address for exported services.
 
Methods inherited from class org.springframework.remoting.jaxws.AbstractJaxWsServiceExporter
afterPropertiesSet, createEndpoint, destroy, publishEndpoints, setBeanFactory, setBindingType, setEndpointProperties, setExecutor, setWebServiceFeatures
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_BASE_ADDRESS

public static final String DEFAULT_BASE_ADDRESS
See Also:
Constant Field Values
Constructor Detail

SimpleJaxWsServiceExporter

public SimpleJaxWsServiceExporter()
Method Detail

setBaseAddress

public void setBaseAddress(String baseAddress)
Set the base address for exported services. Default is "http://localhost:8080/".

For each actual publication address, the service name will be appended to this base address. E.g. service name "OrderService" -> "http://localhost:8080/OrderService".

See Also:
Endpoint.publish(String), WebService.serviceName()

publishEndpoint

protected void publishEndpoint(Endpoint endpoint,
                               WebService annotation)
Description copied from class: AbstractJaxWsServiceExporter
Actually publish the given endpoint. To be implemented by subclasses.

Specified by:
publishEndpoint in class AbstractJaxWsServiceExporter
Parameters:
endpoint - the JAX-WS Endpoint object
annotation - the service bean's WebService annotation

publishEndpoint

protected void publishEndpoint(Endpoint endpoint,
                               WebServiceProvider annotation)
Description copied from class: AbstractJaxWsServiceExporter
Actually publish the given provider endpoint. To be implemented by subclasses.

Specified by:
publishEndpoint in class AbstractJaxWsServiceExporter
Parameters:
endpoint - the JAX-WS Provider Endpoint object
annotation - the service bean's WebServiceProvider annotation

calculateEndpointAddress

protected String calculateEndpointAddress(Endpoint endpoint,
                                          String serviceName)
Calculate the full endpoint address for the given endpoint.

Parameters:
endpoint - the JAX-WS Provider Endpoint object
serviceName - the given service name
Returns:
the full endpoint address