Class Service
- java.lang.Object
-
- org.apache.axis.client.Service
-
- All Implemented Interfaces:
java.io.Serializable
,javax.naming.Referenceable
,Service
public class Service extends java.lang.Object implements Service, java.io.Serializable, javax.naming.Referenceable
Axis' JAXRPC Dynamic Invoation Interface implementation of the Service interface. The Service class should be used a the starting point for access SOAP Web Services. Typically, a Service will be created with a WSDL document and along with a serviceName you can then ask for a Call object that will allow you to invoke a Web Service.- Author:
- Doug Davis (dug@us.ibm.com)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
Service.HandlerRegistryImpl
-
Constructor Summary
Constructors Constructor Description Service()
Constructs a new Service object - this assumes the caller will set the appropriate fields by hand rather than getting them from the WSDL.Service(java.io.InputStream wsdlInputStream, QName serviceName)
Constructs a new Service object for the service in the WSDL document in the wsdlInputStream and serviceName parameters.Service(java.lang.String wsdlLocation, QName serviceName)
Constructs a new Service object for the service in the WSDL document pointed to by the wsdlLocation and serviceName parameters.Service(java.net.URL wsdlDoc, QName serviceName)
Constructs a new Service object for the service in the WSDL document pointed to by the wsdlDoc URL and serviceName parameters.Service(QName serviceName)
Constructs a new Service object - this assumes the caller will set the appropriate fields by hand rather than getting them from the WSDL.Service(EngineConfiguration config)
Constructs a new Service object as above, but also passing in the EngineConfiguration which should be used to set up the AxisClient.Service(EngineConfiguration engineConfiguration, AxisClient axisClient)
Constructs a Service using the supplied configuration and engine directly.Service(Parser parser, QName serviceName)
Constructs a new Service object for the service in the WSDL document
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Call
createCall()
Creates a new Call object with no prefilled data.Call
createCall(QName portName)
Creates a new Call object - will prefill as much info from the WSDL as it can.Call
createCall(QName portName, java.lang.String operationName)
Creates a new Call object - will prefill as much info from the WSDL as it can.Call
createCall(QName portName, QName operationName)
Creates a new Call object - will prefill as much info from the WSDL as it can.protected AxisClient
getAxisClient()
boolean
getCacheWSDL()
Tells whether or not we're caching WSDLCall
getCall()
Deprecated.please use Stub._getCallCall[]
getCalls(QName portName)
Gets an array of preconfigured Call objects for invoking operations on the specified port.AxisEngine
getEngine()
Returns the current AxisEngine used by this Service and all of the Call objects created from this Service object.protected EngineConfiguration
getEngineConfiguration()
Constructs a EngineConfig if one is not available.HandlerRegistry
getHandlerRegistry()
Returns the configured HandlerRegistry instance for this Service instance.boolean
getMaintainSession()
If true, this service wants to track sessions.java.rmi.Remote
getPort(java.lang.Class proxyInterface)
Return a dynamic proxy for the given proxy interface.java.rmi.Remote
getPort(java.lang.String endpoint, java.lang.Class proxyInterface)
Return an object which acts as a dynamic proxy for the passed interface class.java.rmi.Remote
getPort(QName portName, java.lang.Class proxyInterface)
Return either an instance of a generated stub, if it can be found, or a dynamic proxy for the given proxy interface.java.util.Iterator
getPorts()
Returns anIterator
for the list ofQName
s of service endpoints grouped by this servicejavax.naming.Reference
getReference()
Returns a reference to this object.QName
getServiceName()
Returns the qualified name of the service (if one is set).TypeMappingRegistry
getTypeMappingRegistry()
Returns the current TypeMappingRegistry or null.java.net.URL
getWSDLDocumentLocation()
Returns the location of the WSDL document used to prefill the data (if one was used at all).Parser
getWSDLParser()
protected javax.wsdl.Service
getWSDLService()
void
setCacheWSDL(boolean flag)
Allows users to turn caching of WSDL documents on or off.void
setEngine(AxisEngine engine)
Sets this Service's AxisEngine.void
setEngineConfiguration(EngineConfiguration config)
Set this Service's engine configuration.void
setMaintainSession(boolean yesno)
Determine whether we'd like to track sessions or not.void
setTypeMappingRegistry(TypeMappingRegistry registry)
Defines the current Type Mappig Registry.void
setTypeMappingVersion(java.lang.String version)
Set the typemapping version
-
-
-
Field Detail
-
_call
protected Call _call
-
-
Constructor Detail
-
Service
public Service()
Constructs a new Service object - this assumes the caller will set the appropriate fields by hand rather than getting them from the WSDL.
-
Service
public Service(QName serviceName)
Constructs a new Service object - this assumes the caller will set the appropriate fields by hand rather than getting them from the WSDL.
-
Service
public Service(EngineConfiguration engineConfiguration, AxisClient axisClient)
Constructs a Service using the supplied configuration and engine directly.- Parameters:
engineConfiguration
-axisClient
-
-
Service
public Service(EngineConfiguration config)
Constructs a new Service object as above, but also passing in the EngineConfiguration which should be used to set up the AxisClient.
-
Service
public Service(java.net.URL wsdlDoc, QName serviceName) throws ServiceException
Constructs a new Service object for the service in the WSDL document pointed to by the wsdlDoc URL and serviceName parameters.- Parameters:
wsdlDoc
- URL of the WSDL documentserviceName
- Qualified name of the desired service- Throws:
ServiceException
- If there's an error finding or parsing the WSDL
-
Service
public Service(Parser parser, QName serviceName) throws ServiceException
Constructs a new Service object for the service in the WSDL document- Parameters:
parser
- Parser for this serviceserviceName
- Qualified name of the desired service- Throws:
ServiceException
- If there's an error
-
Service
public Service(java.lang.String wsdlLocation, QName serviceName) throws ServiceException
Constructs a new Service object for the service in the WSDL document pointed to by the wsdlLocation and serviceName parameters. This is just like the previous constructor but instead of URL the wsdlLocation parameter points to a file on the filesystem relative to the current directory.- Parameters:
wsdlLocation
- Location of the WSDL relative to the current dirserviceName
- Qualified name of the desired service- Throws:
ServiceException
- If there's an error finding or parsing the WSDL
-
Service
public Service(java.io.InputStream wsdlInputStream, QName serviceName) throws ServiceException
Constructs a new Service object for the service in the WSDL document in the wsdlInputStream and serviceName parameters. This is just like the previous constructor but instead of reading the WSDL from a file (or from a URL) it is in the passed in InputStream.- Parameters:
wsdlInputStream
- InputStream containing the WSDLserviceName
- Qualified name of the desired service- Throws:
ServiceException
- If there's an error finding or parsing the WSDL
-
-
Method Detail
-
getWSDLService
protected javax.wsdl.Service getWSDLService()
-
getWSDLParser
public Parser getWSDLParser()
-
getAxisClient
protected AxisClient getAxisClient()
-
getPort
public java.rmi.Remote getPort(QName portName, java.lang.Class proxyInterface) throws ServiceException
Return either an instance of a generated stub, if it can be found, or a dynamic proxy for the given proxy interface.- Specified by:
getPort
in interfaceService
- Parameters:
portName
- The name of the service portproxyInterface
- The Remote object returned by this method will also implement the given proxyInterface- Returns:
- java.rmi.Remote The stub implementation.
- Throws:
ServiceException
- If there's an error
-
getPort
public java.rmi.Remote getPort(java.lang.Class proxyInterface) throws ServiceException
Return a dynamic proxy for the given proxy interface.- Specified by:
getPort
in interfaceService
- Parameters:
proxyInterface
- The Remote object returned by this method will also implement the given proxyInterface- Returns:
- java.rmi.Remote The stub implementation
- Throws:
ServiceException
- If there's an error
-
getPort
public java.rmi.Remote getPort(java.lang.String endpoint, java.lang.Class proxyInterface) throws ServiceException
Return an object which acts as a dynamic proxy for the passed interface class. This is a more "dynamic" version in that it doesn't actually require WSDL, simply an endpoint address. Note: Not part of the JAX-RPC spec.- Parameters:
endpoint
- the URL which will be used as the SOAP endpointproxyInterface
- the interface class which we wish to mimic via a dynamic proxy- Throws:
ServiceException
-
createCall
public Call createCall(QName portName) throws ServiceException
Creates a new Call object - will prefill as much info from the WSDL as it can. Right now it's just the target URL of the Web Service.- Specified by:
createCall
in interfaceService
- Parameters:
portName
- PortName in the WSDL doc to search for- Returns:
- Call Used for invoking the Web Service
- Throws:
ServiceException
- If there's an error
-
createCall
public Call createCall(QName portName, java.lang.String operationName) throws ServiceException
Creates a new Call object - will prefill as much info from the WSDL as it can. Right now it's target URL, SOAPAction, Parameter types, and return type of the Web Service.- Specified by:
createCall
in interfaceService
- Parameters:
portName
- PortName in the WSDL doc to search foroperationName
- Operation(method) that's going to be invoked- Returns:
- Call Used for invoking the Web Service
- Throws:
ServiceException
- If there's an error
-
createCall
public Call createCall(QName portName, QName operationName) throws ServiceException
Creates a new Call object - will prefill as much info from the WSDL as it can. Right now it's target URL, SOAPAction, Parameter types, and return type of the Web Service.- Specified by:
createCall
in interfaceService
- Parameters:
portName
- PortName in the WSDL doc to search foroperationName
- Operation(method) that's going to be invoked- Returns:
- Call Used for invoking the Web Service
- Throws:
ServiceException
- If there's an error
-
createCall
public Call createCall() throws ServiceException
Creates a new Call object with no prefilled data. This assumes that the caller will set everything manually - no checking of any kind will be done against the WSDL.- Specified by:
createCall
in interfaceService
- Returns:
- Call Used for invoking the Web Service
- Throws:
ServiceException
- If there's an error
-
getCalls
public Call[] getCalls(QName portName) throws ServiceException
Gets an array of preconfigured Call objects for invoking operations on the specified port. There is one Call object per operation that can be invoked on the specified port. Each Call object is pre-configured and does not need to be configured using the setter methods on Call interface. This method requires the Service implementation class to have access to the WSDL related metadata.- Specified by:
getCalls
in interfaceService
- Parameters:
portName
- Qualified name for the target service endpoint- Returns:
- Call[] Array of pre-configured Call objects
- Throws:
ServiceException
- - If this Service class does not have access to the required WSDL metadata or if an illegal portName is specified.
-
getHandlerRegistry
public HandlerRegistry getHandlerRegistry()
Returns the configured HandlerRegistry instance for this Service instance. NOTE: This Service currently does not support the configuration of a HandlerRegistry! It will throw a java.lang.UnsupportedOperationException.- Specified by:
getHandlerRegistry
in interfaceService
- Returns:
- HandlerRegistry
- Throws:
java.lang.UnsupportedOperationException
- - if the Service class does not support the configuration of a HandlerRegistry.
-
getWSDLDocumentLocation
public java.net.URL getWSDLDocumentLocation()
Returns the location of the WSDL document used to prefill the data (if one was used at all).- Specified by:
getWSDLDocumentLocation
in interfaceService
- Returns:
- URL URL pointing to the WSDL doc
-
getServiceName
public QName getServiceName()
Returns the qualified name of the service (if one is set).- Specified by:
getServiceName
in interfaceService
- Returns:
- QName Fully qualified name of this service.
-
getPorts
public java.util.Iterator getPorts() throws ServiceException
Returns anIterator
for the list ofQName
s of service endpoints grouped by this service- Specified by:
getPorts
in interfaceService
- Returns:
- Returns
java.util.Iterator
with elements of typejavax.xml.namespace.QName
- Throws:
ServiceException
- If this Service class does not have access to the required WSDL metadata
-
setTypeMappingRegistry
public void setTypeMappingRegistry(TypeMappingRegistry registry) throws ServiceException
Defines the current Type Mappig Registry.- Parameters:
registry
- The TypeMappingRegistry- Throws:
ServiceException
- if there's an error
-
getTypeMappingRegistry
public TypeMappingRegistry getTypeMappingRegistry()
Returns the current TypeMappingRegistry or null.- Specified by:
getTypeMappingRegistry
in interfaceService
- Returns:
- TypeMappingRegistry The registry
-
getReference
public javax.naming.Reference getReference()
Returns a reference to this object.- Specified by:
getReference
in interfacejavax.naming.Referenceable
- Returns:
- Reference ...
-
setEngine
public void setEngine(AxisEngine engine)
Sets this Service's AxisEngine. This engine will be shared by all Call objects created from this Service object. Note: Not part of the JAX-RPC spec.- Parameters:
engine
- Sets this Service's AxisEngine to the passed in one
-
getEngine
public AxisEngine getEngine()
Returns the current AxisEngine used by this Service and all of the Call objects created from this Service object. Note: Not part of the JAX-RPC spec.- Returns:
- AxisEngine the engine
-
setEngineConfiguration
public void setEngineConfiguration(EngineConfiguration config)
Set this Service's engine configuration. Note that since all of the constructors create the AxisClient right now, this is basically a no-op. Putting it in now so that we can make lazy engine instantiation work, and not have to duplicate every single Service constructor with a EngineConfiguration argument.If you need to use a non-default
EngineConfiguration
, do the following before calling the Service constructor:AxisProperties.setProperty(EngineConfigurationFactory.SYSTEM_PROPERTY_NAME, "classname.of.new.EngineConfigurationFactory");
Where the second parameter is the name of your new class that implements
EngineConfigurationFactory
and a
method. See
public static EngineConfigurationFactory newFactory(Object param)EngineConfigurationFactoryDefault
for an example of how to do this.This way, when the Service class constructor calls
EngineConfigurationFactoryFinder.newFactory().getClientEngineConfig()
the getClientEngineConfig() of your own EngineConfigurationFactory will be called, and your configuration will be used in the constructed Service object.Another way is to use the "discovery" method of
EngineConfigurationFactoryFinder
.- Parameters:
config
- the EngineConfiguration we want to use.
-
getEngineConfiguration
protected EngineConfiguration getEngineConfiguration()
Constructs a EngineConfig if one is not available.
-
setMaintainSession
public void setMaintainSession(boolean yesno)
Determine whether we'd like to track sessions or not. This information is passed to all Call objects created from this service. Calling setMaintainSession will only affect future instantiations of the Call object, not those that already exist. Note: Not part of JAX-RPC specification.- Parameters:
yesno
- true if session state is desired, false if not.
-
getMaintainSession
public boolean getMaintainSession()
If true, this service wants to track sessions.
-
getCall
public Call getCall() throws ServiceException
Deprecated.please use Stub._getCallReturns last Call object associated with this service. Note that since the Service is not thread-safe, you may not get the last call object that you created on this thread. please use Stub._getCall- Throws:
ServiceException
-
getCacheWSDL
public boolean getCacheWSDL()
Tells whether or not we're caching WSDL
-
setCacheWSDL
public void setCacheWSDL(boolean flag)
Allows users to turn caching of WSDL documents on or off. Default is 'true' (on).
-
setTypeMappingVersion
public void setTypeMappingVersion(java.lang.String version)
Set the typemapping version- Parameters:
version
-
-
-