## javax.xml.rpc
Interface Service

All Known Implementing Classes:
  Service

public interface Service

`Service` class acts as a factory of the following:

- Dynamic proxy for the target service endpoint.
- Instance of the type `javax.xml.rpc.Call` for the dynamic invocation of a remote operation on the target service endpoint.
- Instance of a generated stub class

Version:
  1.0

Method Summary
`Call` `createCall()` Creates a `Call` object not associated with specific operation or target service endpoint.
`Call` `createCall(QName portName)` Creates a `Call` instance.
`Call` `createCall(QName portName, QName operationName)` Creates a `Call` instance.
`Call` `createCall(QName portName, java.lang.String operationName)` Creates a `Call` instance.
`Call[]` `getCalls(QName portName)` Gets an array of preconfigured `Call` objects for invoking operations on the specified port.
`HandlerRegistry` `getHandlerRegistry()` Returns the configured `HandlerRegistry` instance for this `Service` instance.
`java.rmi.Remote` `getPort(java.lang.Class serviceEndpointInterface)` The getPort method returns either an instance of a generated stub implementation class or a dynamic proxy.
`java.rmi.Remote` `getPort(QName portName, java.lang.Class serviceEndpointInterface)` The getPort method returns either an instance of a generated stub implementation class or a dynamic proxy.
`java.util.Iterator` `getPorts()` Returns an `Iterator` for the list of `QName`s of service endpoints grouped by this service.
`QName` `getServiceName()` Gets the name of this Service.
`TypeMappingRegistry` `getTypeMappingRegistry()` Gets the `TypeMappingRegistry` for this `Service` object.
`java.net.URL` `getWSDLDocumentLocation()` Gets location of the WSDL document for this Service.

Method Detail

### getPort

    public java.rmi.Remote getPort(QName portName,
                                   java.lang.Class serviceEndpointInterface)
                            throws ServiceException

  The getPort method returns either an instance of a generated stub implementation class or a dynamic proxy. A service client uses this dynamic proxy to invoke operations on the target service endpoint. The `serviceEndpointInterface` specifies the service endpoint interface that is supported by the created dynamic proxy or stub instance.

  Parameters:
    `portName` - Qualified name of the service endpoint in the WSDL service description
    `serviceEndpointInterface` - Service endpoint interface supported by the dynamic proxy or stub instance
  Returns:
    java.rmi.Remote Stub instance or dynamic proxy that supports the specified service endpoint interface
  Throws:
    `ServiceException` - This exception is thrown in the following cases:
    - If there is an error in creation of the dynamic proxy or stub instance
    - If there is any missing WSDL metadata as required by this method
    - Optionally, if an illegal `serviceEndpointInterface` or `portName` is specified

### getPort

    public java.rmi.Remote getPort(java.lang.Class serviceEndpointInterface)
                            throws ServiceException

  The getPort method returns either an instance of a generated stub implementation class or a dynamic proxy. The parameter `serviceEndpointInterface` specifies the service endpoint interface that is supported by the returned stub or proxy. In the implementation of this method, the JAX-RPC runtime system takes the responsibility of selecting a protocol binding (and a port) and configuring the stub accordingly. The returned `Stub` instance should not be reconfigured by the client.

  Parameters:
    `serviceEndpointInterface` - Service endpoint interface
  Returns:
    Stub instance or dynamic proxy that supports the specified service endpoint interface
  Throws:
    `ServiceException` -
    - If there is an error during creation of stub instance or dynamic proxy
    - If there is any missing WSDL metadata as required by this method
    - Optionally, if an illegal `serviceEndpointInterface` is specified

### 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.

  Each invocation of the `getCalls` method returns a new array of preconfigured `Call` objects

  This method requires the `Service` implementation class to have access to the WSDL related metadata.

  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.

### createCall

    public Call createCall(QName portName)
                    throws ServiceException

  Creates a `Call` instance.

  Parameters:
    `portName` - Qualified name for the target service endpoint
  Returns:
    Call instance
  Throws:
    `ServiceException` - If any error in the creation of the `Call` object

### createCall

    public Call createCall(QName portName,
                           QName operationName)
                    throws ServiceException

  Creates a `Call` instance.

  Parameters:
    `portName` - Qualified name for the target service endpoint
    `operationName` - Qualified Name of the operation for which this `Call` object is to be created.
  Returns:
    Call instance
  Throws:
    `ServiceException` - If any error in the creation of the `Call` object

### createCall

    public Call createCall(QName portName,
                           java.lang.String operationName)
                    throws ServiceException

  Creates a `Call` instance.

  Parameters:
    `portName` - Qualified name for the target service endpoint
    `operationName` - Name of the operation for which this `Call` object is to be created.
  Returns:
    Call instance
  Throws:
    `ServiceException` - If any error in the creation of the `Call` object

### createCall

    public Call createCall()
                    throws ServiceException

  Creates a `Call` object not associated with specific operation or target service endpoint. This `Call` object needs to be configured using the setter methods on the `Call` interface.

  Returns:
    Call object
  Throws:
    `ServiceException` - If any error in the creation of the `Call` object

### getServiceName

    public QName getServiceName()

  Gets the name of this Service.

  Returns:
    Qualified name of this service

### getPorts

    public java.util.Iterator getPorts()
                                throws ServiceException

  Returns an `Iterator` for the list of `QName`s of service endpoints grouped by this service.

  Returns:
    Returns `java.util.Iterator` with elements of type `javax.xml.namespace.QName`
  Throws:
    `ServiceException` - If this Service class does not have access to the required WSDL metadata

### getWSDLDocumentLocation

    public java.net.URL getWSDLDocumentLocation()

  Gets location of the WSDL document for this Service.

  Returns:
    URL for the location of the WSDL document for this service

### getTypeMappingRegistry

    public TypeMappingRegistry getTypeMappingRegistry()

  Gets the `TypeMappingRegistry` for this `Service` object. The returned `TypeMappingRegistry` instance is pre-configured to support the standard type mapping between XML and Java types types as required by the JAX-RPC specification.

  Returns:
    The TypeMappingRegistry for this Service object.
  Throws:
    `java.lang.UnsupportedOperationException` - if the `Service` class does not support the configuration of `TypeMappingRegistry`.

### getHandlerRegistry

    public HandlerRegistry getHandlerRegistry()

  Returns the configured `HandlerRegistry` instance for this `Service` instance.

  Returns:
    HandlerRegistry
  Throws:
    `java.lang.UnsupportedOperationException` - - if the `Service` class does not support the configuration of a `HandlerRegistry`

Copyright © 2005 Apache Web Services Project. All Rights Reserved.