Spring Framework

org.springframework.remoting.jaxws
Class SimpleHttpServerJaxWsServiceExporter

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

public class SimpleHttpServerJaxWsServiceExporter
extends AbstractJaxWsServiceExporter

Simple exporter for JAX-WS services, autodetecting annotated service beans (through the JAX-WS WebService annotation) and exporting them through the HTTP server included in Sun's JDK 1.6. The full address for each service will consist of the server's base address with the service name appended (e.g. "http://localhost:8080/OrderService").

Note that this exporter will only work on Sun's JDK 1.6 or higher, as well as on JDKs that ship Sun's entire class library as included in the Sun JDK. For a portable JAX-WS exporter, have a look at SimpleJaxWsServiceExporter.

Since:
2.5.5
Author:
Juergen Hoeller
See Also:
WebService, Endpoint.publish(Object), SimpleJaxWsServiceExporter

Field Summary
protected  org.apache.commons.logging.Log logger
           
 
Constructor Summary
SimpleHttpServerJaxWsServiceExporter()
           
 
Method Summary
 void afterPropertiesSet()
          Immediately publish all endpoints when fully configured.
protected  com.sun.net.httpserver.HttpContext buildHttpContext(javax.xml.ws.Endpoint endpoint, java.lang.String serviceName)
          Build the HttpContext for the given endpoint.
protected  java.lang.String calculateEndpointPath(javax.xml.ws.Endpoint endpoint, java.lang.String serviceName)
          Calculate the full endpoint path for the given endpoint.
 void destroy()
          Stops all published endpoints, taking the web services offline.
protected  void publishEndpoint(javax.xml.ws.Endpoint endpoint, javax.jws.WebService annotation)
          Actually publish the given endpoint.
protected  void publishEndpoint(javax.xml.ws.Endpoint endpoint, javax.xml.ws.WebServiceProvider annotation)
          Actually publish the given provider endpoint.
 void setAuthenticator(com.sun.net.httpserver.Authenticator authenticator)
          Register a common Authenticator to be applied to all detected WebService annotated beans.
 void setBacklog(int backlog)
          Specify the HTTP server's TCP backlog.
 void setBasePath(java.lang.String basePath)
          Set the base path for context publication.
 void setFilters(java.util.List<com.sun.net.httpserver.Filter> filters)
          Register common Filters to be applied to all detected WebService annotated beans.
 void setHostname(java.lang.String hostname)
          Specify the HTTP server's hostname to bind to.
 void setPort(int port)
          Specify the HTTP server's port.
 void setServer(com.sun.net.httpserver.HttpServer server)
          Specify an existing HTTP server to register the web service contexts with.
 void setShutdownDelay(int shutdownDelay)
          Specify the number of seconds to wait until HTTP exchanges have completed when shutting down the HTTP server.
 
Methods inherited from class org.springframework.remoting.jaxws.AbstractJaxWsServiceExporter
createEndpoint, 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

logger

protected final org.apache.commons.logging.Log logger
Constructor Detail

SimpleHttpServerJaxWsServiceExporter

public SimpleHttpServerJaxWsServiceExporter()
Method Detail

setServer

public void setServer(com.sun.net.httpserver.HttpServer server)
Specify an existing HTTP server to register the web service contexts with. This will typically be a server managed by the general Spring SimpleHttpServerFactoryBean.

Alternatively, configure a local HTTP server through the "port", "hostname" and "backlog" properties (or rely on the defaults there).


setPort

public void setPort(int port)
Specify the HTTP server's port. Default is 8080.

Only applicable for a locally configured HTTP server. Ignored when the "server" property has been specified.


setHostname

public void setHostname(java.lang.String hostname)
Specify the HTTP server's hostname to bind to. Default is localhost; can be overridden with a specific network address to bind to.

Only applicable for a locally configured HTTP server. Ignored when the "server" property has been specified.


setBacklog

public void setBacklog(int backlog)
Specify the HTTP server's TCP backlog. Default is -1, indicating the system's default value.

Only applicable for a locally configured HTTP server. Ignored when the "server" property has been specified.


setShutdownDelay

public void setShutdownDelay(int shutdownDelay)
Specify the number of seconds to wait until HTTP exchanges have completed when shutting down the HTTP server. Default is 0.

Only applicable for a locally configured HTTP server. Ignored when the "server" property has been specified.


setBasePath

public void setBasePath(java.lang.String basePath)
Set the base path for context publication. Default is "/".

For each context publication path, the service name will be appended to this base address. E.g. service name "OrderService" -> "/OrderService".

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

setFilters

public void setFilters(java.util.List<com.sun.net.httpserver.Filter> filters)
Register common Filters to be applied to all detected WebService annotated beans.


setAuthenticator

public void setAuthenticator(com.sun.net.httpserver.Authenticator authenticator)
Register a common Authenticator to be applied to all detected WebService annotated beans.


afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Description copied from class: AbstractJaxWsServiceExporter
Immediately publish all endpoints when fully configured.

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

publishEndpoint

protected void publishEndpoint(javax.xml.ws.Endpoint endpoint,
                               javax.jws.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(javax.xml.ws.Endpoint endpoint,
                               javax.xml.ws.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

buildHttpContext

protected com.sun.net.httpserver.HttpContext buildHttpContext(javax.xml.ws.Endpoint endpoint,
                                                              java.lang.String serviceName)
Build the HttpContext for the given endpoint.

Parameters:
endpoint - the JAX-WS Provider Endpoint object
serviceName - the given service name
Returns:
the fully populated HttpContext

calculateEndpointPath

protected java.lang.String calculateEndpointPath(javax.xml.ws.Endpoint endpoint,
                                                 java.lang.String serviceName)
Calculate the full endpoint path for the given endpoint.

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

destroy

public void destroy()
Description copied from class: AbstractJaxWsServiceExporter
Stops all published endpoints, taking the web services offline.

Specified by:
destroy in interface DisposableBean
Overrides:
destroy in class AbstractJaxWsServiceExporter

Spring Framework