javax.xml.rpc

## Interface Call

-     public interface Call

  The `javax.xml.rpc.Call` interface provides support for the dynamic invocation of a service endpoint. The `javax.xml.rpc.Service` interface acts as a factory for the creation of `Call` instances.

  Once a `Call` instance is created, various setter and getter methods may be used to configure this `Call` instance.

  Version:
    1.0
  Author:
    Rahul Sharma

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ENCODINGSTYLE_URI_PROPERTY` Standard property for encoding Style: Encoding style specified as a namespace URI.
    `static String` | `OPERATION_STYLE_PROPERTY` Standard property for operation style.
    `static String` | `PASSWORD_PROPERTY` Standard property: Password for authentication
    `static String` | `SESSION_MAINTAIN_PROPERTY` Standard property: This boolean property is used by a service client to indicate whether or not it wants to participate in a session with a service endpoint.
    `static String` | `SOAPACTION_URI_PROPERTY` Standard property for SOAPAction.
    `static String` | `SOAPACTION_USE_PROPERTY` Standard property for SOAPAction.
    `static String` | `USERNAME_PROPERTY` Standard property: User name for authentication

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addParameter(String paramName, QName xmlType, Class javaType, ParameterMode parameterMode)` Adds a parameter type and mode for a specific operation.
    `void` | `addParameter(String paramName, QName xmlType, ParameterMode parameterMode)` Adds a parameter type and mode for a specific operation.
    `QName` | `getOperationName()` Gets the name of the operation to be invoked using this `Call` instance.
    `Map` | `getOutputParams()` Returns a `Map` of {name, value} for the output parameters of the last invoked operation.
    `List` | `getOutputValues()` Returns a `List` values for the output parameters of the last invoked operation.
    `QName` | `getParameterTypeByName(String paramName)` Gets the XML type of a parameter by name
    `QName` | `getPortTypeName()` Gets the qualified name of the port type.
    `Object` | `getProperty(String name)` Gets the value of a named property.
    `Iterator` | `getPropertyNames()` Gets the names of configurable properties supported by this `Call` object.
    `QName` | `getReturnType()` Gets the return type for a specific operation
    `String` | `getTargetEndpointAddress()` Gets the address of a target service endpoint.
    `Object` | `invoke(Object[] inputParams)` Invokes a specific operation using a synchronous request-response interaction mode.
    `Object` | `invoke(QName operationName, Object[] inputParams)` Invokes a specific operation using a synchronous request-response interaction mode.
    `void` | `invokeOneWay(Object[] inputParams)` Invokes a remote method using the one-way interaction mode.
    `boolean` | `isParameterAndReturnSpecRequired(QName operationName)` Indicates whether `addParameter` and `setReturnType` methods are to be invoked to specify the parameter and return type specification for a specific operation.
    `void` | `removeAllParameters()` Removes all specified parameters from this `Call` instance.
    `void` | `removeProperty(String name)` Removes a named property.
    `void` | `setOperationName(QName operationName)` Sets the name of the operation to be invoked using this `Call` instance.
    `void` | `setPortTypeName(QName portType)` Sets the qualified name of the port type.
    `void` | `setProperty(String name, Object value)` Sets the value for a named property.
    `void` | `setReturnType(QName xmlType)` Sets the return type for a specific operation.
    `void` | `setReturnType(QName xmlType, Class javaType)` Sets the return type for a specific operation.
    `void` | `setTargetEndpointAddress(String address)` Sets the address of the target service endpoint.

- - ### Field Detail

    - #### USERNAME_PROPERTY

          static final String USERNAME_PROPERTY

      Standard property: User name for authentication

      Type: `java.lang.String`

      See Also:
        Constant Field Values

    - #### PASSWORD_PROPERTY

          static final String PASSWORD_PROPERTY

      Standard property: Password for authentication

      Type: `java.lang.String`

      See Also:
        Constant Field Values

    - #### OPERATION_STYLE_PROPERTY

          static final String OPERATION_STYLE_PROPERTY

      Standard property for operation style. This property is set to "rpc" if the operation style is rpc; "document" if the operation style is document.

      Type: `java.lang.String`

      See Also:
        Constant Field Values

    - #### SOAPACTION_USE_PROPERTY

          static final String SOAPACTION_USE_PROPERTY

      Standard property for SOAPAction. This boolean property indicates whether or not SOAPAction is to be used. The default value of this property is false indicating that the SOAPAction is not used.

      Type: `java.lang.Boolean`

      See Also:
        Constant Field Values

    - #### SOAPACTION_URI_PROPERTY

          static final String SOAPACTION_URI_PROPERTY

      Standard property for SOAPAction. Indicates the SOAPAction URI if the `javax.xml.rpc.soap.http.soapaction.use` property is set to `true`.

      Type: `java.lang.String`

      See Also:
        Constant Field Values

    - #### ENCODINGSTYLE_URI_PROPERTY

          static final String ENCODINGSTYLE_URI_PROPERTY

      Standard property for encoding Style: Encoding style specified as a namespace URI. The default value is the SOAP 1.1 encoding `http://schemas.xmlsoap.org/soap/encoding/`

      Type: `java.lang.String`

      See Also:
        Constant Field Values

    - #### SESSION_MAINTAIN_PROPERTY

          static final String SESSION_MAINTAIN_PROPERTY

      Standard property: This boolean property is used by a service client to indicate whether or not it wants to participate in a session with a service endpoint. If this property is set to true, the service client indicates that it wants the session to be maintained. If set to false, the session is not maintained. The default value for this property is `false`.

      Type: `java.lang.Boolean`

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### isParameterAndReturnSpecRequired

          boolean isParameterAndReturnSpecRequired(QName operationName)

      Indicates whether `addParameter` and `setReturnType` methods are to be invoked to specify the parameter and return type specification for a specific operation.
      Parameters:
        `operationName` - Qualified name of the operation
      Returns:
        Returns true if the Call implementation class requires addParameter and setReturnType to be invoked in the client code for the specified operation. This method returns false otherwise.
      Throws:
        `IllegalArgumentException` - If invalid operation name is specified

    - #### addParameter

          void addParameter(String paramName,
                          QName xmlType,
                          ParameterMode parameterMode)

      Adds a parameter type and mode for a specific operation. Note that the client code may not call any `addParameter` and `setReturnType` methods before calling the `invoke` method. In this case, the Call implementation class determines the parameter types by using reflection on parameters, using the WSDL description and configured type mapping registry.
      Parameters:
        `paramName` - Name of the parameter
        `xmlType` - XML type of the parameter
        `parameterMode` - Mode of the parameter-whether `ParameterMode.IN`, `ParameterMode.OUT`, or `ParameterMode.INOUT`,
      Throws:
        `javax.xml.rpc.JAXRPCException:` - This exception may be thrown if the method `isParameterAndReturnSpecRequired` returns `false` for this operation.
        `IllegalArgumentException` - If any illegal parameter name or XML type is specified
      See Also:
        `isParameterAndReturnSpecRequired(javax.xml.namespace.QName)`

    - #### addParameter

          void addParameter(String paramName,
                          QName xmlType,
                          Class javaType,
                          ParameterMode parameterMode)

      Adds a parameter type and mode for a specific operation. This method is used to specify the Java type for either OUT or INOUT parameters.
      Parameters:
        `paramName` - Name of the parameter
        `xmlType` - XML type of the parameter
        `javaType` - Java class of the parameter
        `parameterMode` - Mode of the parameter-whether ParameterMode.IN, OUT or INOUT
      Throws:
        `JAXRPCException` -
        - This exception may be thrown if this method is invoked when the method `isParameterAndReturnSpecRequired` returns `false`.
        - If specified XML type and Java type mapping is not valid. For example, `TypeMappingRegistry` has no serializers for this mapping.
        `IllegalArgumentException` - If any illegal parameter name or XML type is specified
        `UnsupportedOperationException` - If this method is not supported
      See Also:
        `isParameterAndReturnSpecRequired(javax.xml.namespace.QName)`

    - #### getParameterTypeByName

          QName getParameterTypeByName(String paramName)

      Gets the XML type of a parameter by name
      Parameters:
        `paramName` - Name of the parameter
      Returns:
        Returns XML type for the specified parameter

    - #### setReturnType

          void setReturnType(QName xmlType)

      Sets the return type for a specific operation. Invoking `setReturnType(null)` removes the return type for this Call object.
      Parameters:
        `xmlType` - XML data type of the return value
      Throws:
        `JAXRPCException` - This exception may be thrown when the method `isParameterAndReturnSpecRequired` returns `false`.
        `IllegalArgumentException` - If an illegal XML type is specified

    - #### setReturnType

          void setReturnType(QName xmlType,
                           Class javaType)

      Sets the return type for a specific operation.
      Parameters:
        `xmlType` - XML data type of the return value
        `javaType` - Java Class of the return value
      Throws:
        `JAXRPCException` -
        - This exception may be thrown if this method is invoked when the method `isParameterAndReturnSpecRequired` returns `false`.
        - If XML type and Java type cannot be mapped using the standard type mapping or TypeMapping registry
        `UnsupportedOperationException` - If this method is not supported
        `IllegalArgumentException` - If an illegal XML type is specified

    - #### getReturnType

          QName getReturnType()

      Gets the return type for a specific operation
      Returns:
        Returns the XML type for the return value

    - #### removeAllParameters

          void removeAllParameters()

      Removes all specified parameters from this `Call` instance. Note that this method removes only the parameters and not the return type. The `setReturnType(null)` is used to remove the return type.
      Throws:
        `JAXRPCException` - This exception may be thrown If this method is called when the method `isParameterAndReturnSpecRequired` returns `false` for this Call's operation.

    - #### getOperationName

          QName getOperationName()

      Gets the name of the operation to be invoked using this `Call` instance.
      Returns:
        Qualified name of the operation

    - #### setOperationName

          void setOperationName(QName operationName)

      Sets the name of the operation to be invoked using this `Call` instance.
      Parameters:
        `operationName` - QName of the operation to be invoked using the Call instance

    - #### getPortTypeName

          QName getPortTypeName()

      Gets the qualified name of the port type.
      Returns:
        Qualified name of the port type

    - #### setPortTypeName

          void setPortTypeName(QName portType)

      Sets the qualified name of the port type.
      Parameters:
        `portType` - Qualified name of the port type

    - #### setTargetEndpointAddress

          void setTargetEndpointAddress(String address)

      Sets the address of the target service endpoint. This address must correspond to the transport specified in the binding for this `Call` instance.
      Parameters:
        `address` - Address of the target service endpoint; specified as an URI

    - #### getTargetEndpointAddress

          String getTargetEndpointAddress()

      Gets the address of a target service endpoint.
      Returns:
        Address of the target service endpoint as an URI

    - #### setProperty

          void setProperty(String name,
                         Object value)

      Sets the value for a named property. JAX-RPC specification specifies a standard set of properties that may be passed to the `Call.setProperty` method.
      Parameters:
        `name` - Name of the property
        `value` - Value of the property
      Throws:
        `JAXRPCException` -
        - If an optional standard property name is specified, however this `Call` implementation class does not support the configuration of this property.
        - If an invalid (or unsupported) property name is specified or if a value of mismatched property type is passed.
        - If there is any error in the configuration of a valid property.

    - #### getProperty

          Object getProperty(String name)

      Gets the value of a named property.
      Parameters:
        `name` - Name of the property
      Returns:
        Value of the named property
      Throws:
        `JAXRPCException` - if an invalid or unsupported property name is passed.

    - #### removeProperty

          void removeProperty(String name)

      Removes a named property.
      Parameters:
        `name` - Name of the property
      Throws:
        `JAXRPCException` - if an invalid or unsupported property name is passed.

    - #### getPropertyNames

          Iterator getPropertyNames()

      Gets the names of configurable properties supported by this `Call` object.
      Returns:
        Iterator for the property names

    - #### invoke

          Object invoke(Object[] inputParams)
                        throws RemoteException

      Invokes a specific operation using a synchronous request-response interaction mode.
      Parameters:
        `inputParams` - Object[]--Parameters for this invocation. This includes only the input params
      Returns:
        Returns the return value or `null`
      Throws:
        `RemoteException` - if there is any error in the remote method invocation
        `SOAPFaultException` - Indicates a SOAP fault
        `JAXRPCException` -
        - If there is an error in the configuration of the `Call` object
        - If `inputParams` do not match the required parameter set (as specified through the `addParameter` invocations or in the corresponding WSDL)
        - If parameters and return type are incorrectly specified

    - #### invoke

          Object invoke(QName operationName,
                      Object[] inputParams)
                        throws RemoteException

      Invokes a specific operation using a synchronous request-response interaction mode.
      Parameters:
        `operationName` - QName of the operation
        `inputParams` - Object[]--Parameters for this invocation. This includes only the input params.
      Returns:
        Return value or null
      Throws:
        `RemoteException` - if there is any error in the remote method invocation.
        `SOAPFaultException` - Indicates a SOAP fault
        `JAXRPCException` -
        - If there is an error in the configuration of the `Cal`l object
        - If `inputParam`s do not match the required parameter set (as specified through the `addParameter` invocations or in the corresponding WSDL)
        - If parameters and return type are incorrectly specified

    - #### invokeOneWay

          void invokeOneWay(Object[] inputParams)

      Invokes a remote method using the one-way interaction mode. The client thread does not normally block waiting for the completion of the server processing for this remote method invocation. When the protocol in use is SOAP/HTTP, this method should block until an HTTP response code has been received or an error occurs. This method must not throw any remote exceptions. This method may throw a `JAXRPCException` during the processing of the one-way remote call.
      Parameters:
        `inputParams` - Object[]--Parameters for this invocation. This includes only the input params.
      Throws:
        `JAXRPCException` - if there is an error in the configuration of the `Call` object (example: a non-void return type has been incorrectly specified for the one-way call) or if there is any error during the invocation of the one-way remote call

    - #### getOutputParams

          Map getOutputParams()

      Returns a `Map` of {name, value} for the output parameters of the last invoked operation. The parameter names in the returned Map are of type `java.lang.String`.
      Returns:
        Map Output parameters for the last `Call.invoke()`. Empty `Map` is returned if there are no output parameters.
      Throws:
        `JAXRPCException` - If this method is invoked for a one-way operation or is invoked before any `invoke` method has been called.

    - #### getOutputValues

          List getOutputValues()

      Returns a `List` values for the output parameters of the last invoked operation.
      Returns:
        java.util.List Values for the output parameters. An empty `List` is returned if there are no output values.
      Throws:
        `JAXRPCException` - If this method is invoked for a one-way operation or is invoked before any `invoke` method has been called.

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.