org.springframework.remoting.jaxrpc
Class LocalJaxRpcServiceFactory

java.lang.Object
  extended by org.springframework.remoting.jaxrpc.LocalJaxRpcServiceFactory
Direct Known Subclasses:
JaxRpcPortClientInterceptor, LocalJaxRpcServiceFactoryBean

public class LocalJaxRpcServiceFactory
extends Object

Factory for locally defined JAX-RPC Service references. Uses a JAX-RPC ServiceFactory underneath.

Serves as base class for LocalJaxRpcServiceFactoryBean as well as JaxRpcPortClientInterceptor and JaxRpcPortProxyFactoryBean.

Since:
15.12.2003
Author:
Juergen Hoeller
See Also:
ServiceFactory, Service, LocalJaxRpcServiceFactoryBean, JaxRpcPortClientInterceptor, JaxRpcPortProxyFactoryBean

Field Summary
protected  Log logger
          Logger available to subclasses
 
Constructor Summary
LocalJaxRpcServiceFactory()
           
 
Method Summary
 Service createJaxRpcService()
          Create a JAX-RPC Service according to the parameters of this factory.
protected  Service createService(ServiceFactory serviceFactory)
          Actually create the JAX-RPC Service instance, based on this factory's settings.
protected  ServiceFactory createServiceFactory()
          Create a JAX-RPC ServiceFactory, either of the specified class or the default.
 Class getJaxRpcServiceInterface()
          Return the JAX-RPC service interface to use for looking up the service.
 Properties getJaxRpcServiceProperties()
          Return JAX-RPC service properties to be passed to the ServiceFactory, if any.
 String getNamespaceUri()
          Return the namespace URI of the service.
protected  QName getQName(String name)
          Return a QName for the given name, relative to the namespace URI of this factory, if given.
 ServiceFactory getServiceFactory()
          Return the specified ServiceFactory instance, if any.
 Class getServiceFactoryClass()
          Return the ServiceFactory class to use, or null if default.
 String getServiceName()
          Return the name of the service.
 JaxRpcServicePostProcessor[] getServicePostProcessors()
          Return the JaxRpcServicePostProcessors to be applied to JAX-RPC Service instances created by this factory.
 URL getWsdlDocumentUrl()
          Return the URL of the WSDL document that describes the service.
protected  void postProcessJaxRpcService(Service service)
          Post-process the given JAX-RPC Service.
 void setJaxRpcServiceInterface(Class jaxRpcServiceInterface)
          Set the JAX-RPC service interface to use for looking up the service.
 void setJaxRpcServiceProperties(Properties jaxRpcServiceProperties)
          Set JAX-RPC service properties to be passed to the ServiceFactory, if any.
 void setNamespaceUri(String namespaceUri)
          Set the namespace URI of the service.
 void setServiceFactory(ServiceFactory serviceFactory)
          Set the ServiceFactory instance to use.
 void setServiceFactoryClass(Class serviceFactoryClass)
          Set the ServiceFactory class to use, for example "org.apache.axis.client.ServiceFactory".
 void setServiceName(String serviceName)
          Set the name of the service to look up.
 void setServicePostProcessors(JaxRpcServicePostProcessor[] servicePostProcessors)
          Set the JaxRpcServicePostProcessors to be applied to JAX-RPC Service instances created by this factory.
 void setWsdlDocumentUrl(URL wsdlDocumentUrl)
          Set the URL of the WSDL document that describes the service.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final Log logger
Logger available to subclasses

Constructor Detail

LocalJaxRpcServiceFactory

public LocalJaxRpcServiceFactory()
Method Detail

setServiceFactory

public void setServiceFactory(ServiceFactory serviceFactory)
Set the ServiceFactory instance to use.

This is an alternative to the common "serviceFactoryClass" property, allowing for a pre-initialized ServiceFactory instance to be specified.

See Also:
setServiceFactoryClass(java.lang.Class)

getServiceFactory

public ServiceFactory getServiceFactory()
Return the specified ServiceFactory instance, if any.


setServiceFactoryClass

public void setServiceFactoryClass(Class serviceFactoryClass)
Set the ServiceFactory class to use, for example "org.apache.axis.client.ServiceFactory".

Does not need to be set if the JAX-RPC implementation has registered itself with the JAX-RPC system property "SERVICEFACTORY_PROPERTY".

See Also:
ServiceFactory

getServiceFactoryClass

public Class getServiceFactoryClass()
Return the ServiceFactory class to use, or null if default.


setWsdlDocumentUrl

public void setWsdlDocumentUrl(URL wsdlDocumentUrl)
Set the URL of the WSDL document that describes the service.


getWsdlDocumentUrl

public URL getWsdlDocumentUrl()
Return the URL of the WSDL document that describes the service.


setNamespaceUri

public void setNamespaceUri(String namespaceUri)
Set the namespace URI of the service. Corresponds to the WSDL "targetNamespace".


getNamespaceUri

public String getNamespaceUri()
Return the namespace URI of the service.


setServiceName

public void setServiceName(String serviceName)
Set the name of the service to look up. Corresponds to the "wsdl:service" name.

See Also:
ServiceFactory.createService(javax.xml.namespace.QName), ServiceFactory.createService(java.net.URL, javax.xml.namespace.QName), ServiceFactory.loadService(java.net.URL, javax.xml.namespace.QName, java.util.Properties)

getServiceName

public String getServiceName()
Return the name of the service.


setJaxRpcServiceInterface

public void setJaxRpcServiceInterface(Class jaxRpcServiceInterface)
Set the JAX-RPC service interface to use for looking up the service. If specified, this will override a "serviceName" setting.

The specified interface will usually be a generated JAX-RPC service interface that directly corresponds to the WSDL service declaration. Note that this is not a port interface or the application-level service interface to be exposed by a port proxy!

Only supported by JAX-RPC 1.1 providers.

See Also:
setServiceName(java.lang.String), ServiceFactory.loadService(Class), ServiceFactory.loadService(java.net.URL, Class, java.util.Properties)

getJaxRpcServiceInterface

public Class getJaxRpcServiceInterface()
Return the JAX-RPC service interface to use for looking up the service.


setJaxRpcServiceProperties

public void setJaxRpcServiceProperties(Properties jaxRpcServiceProperties)
Set JAX-RPC service properties to be passed to the ServiceFactory, if any.

Only supported by JAX-RPC 1.1 providers.

See Also:
ServiceFactory.loadService(java.net.URL, javax.xml.namespace.QName, java.util.Properties), ServiceFactory.loadService(java.net.URL, Class, java.util.Properties)

getJaxRpcServiceProperties

public Properties getJaxRpcServiceProperties()
Return JAX-RPC service properties to be passed to the ServiceFactory, if any.


setServicePostProcessors

public void setServicePostProcessors(JaxRpcServicePostProcessor[] servicePostProcessors)
Set the JaxRpcServicePostProcessors to be applied to JAX-RPC Service instances created by this factory.

Such post-processors can, for example, register custom type mappings. They are reusable across all pre-built subclasses of this factory: LocalJaxRpcServiceFactoryBean, JaxRpcPortClientInterceptor, JaxRpcPortProxyFactoryBean.

See Also:
LocalJaxRpcServiceFactoryBean, JaxRpcPortClientInterceptor, JaxRpcPortProxyFactoryBean

getServicePostProcessors

public JaxRpcServicePostProcessor[] getServicePostProcessors()
Return the JaxRpcServicePostProcessors to be applied to JAX-RPC Service instances created by this factory.


createJaxRpcService

public Service createJaxRpcService()
                            throws ServiceException
Create a JAX-RPC Service according to the parameters of this factory.

Throws:
ServiceException
See Also:
setServiceName(java.lang.String), setWsdlDocumentUrl(java.net.URL), postProcessJaxRpcService(javax.xml.rpc.Service)

getQName

protected QName getQName(String name)
Return a QName for the given name, relative to the namespace URI of this factory, if given.

See Also:
setNamespaceUri(java.lang.String)

createServiceFactory

protected ServiceFactory createServiceFactory()
                                       throws ServiceException
Create a JAX-RPC ServiceFactory, either of the specified class or the default.

Throws:
ServiceException - if thrown by JAX-RPC methods
See Also:
setServiceFactoryClass(java.lang.Class), ServiceFactory.newInstance()

createService

protected Service createService(ServiceFactory serviceFactory)
                         throws ServiceException
Actually create the JAX-RPC Service instance, based on this factory's settings.

Parameters:
serviceFactory - the JAX-RPC ServiceFactory to use
Returns:
the newly created JAX-RPC Service
Throws:
ServiceException - if thrown by JAX-RPC methods
See Also:
ServiceFactory.createService(java.net.URL, javax.xml.namespace.QName), ServiceFactory.loadService(java.lang.Class)

postProcessJaxRpcService

protected void postProcessJaxRpcService(Service service)
Post-process the given JAX-RPC Service. Called by createJaxRpcService(). Useful, for example, to register custom type mappings.

The default implementation delegates to all registered JaxRpcServicePostProcessors. It is usually preferable to implement custom type mappings etc there rather than in a subclass of this factory, to allow for reuse of the post-processors.

Parameters:
service - the current JAX-RPC Service (can be cast to an implementation-specific class if necessary)
See Also:
setServicePostProcessors(org.springframework.remoting.jaxrpc.JaxRpcServicePostProcessor[]), Service.getTypeMappingRegistry()