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.

Field Summary
static StringENCODINGSTYLE_URI_PROPERTY
Standard property for encoding Style: Encoding style specified as a namespace URI.
static StringOPERATION_STYLE_PROPERTY
Standard property for operation style.
static StringPASSWORD_PROPERTY
Standard property: Password for authentication

Type: java.lang.String

static StringSESSION_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 StringSOAPACTION_URI_PROPERTY
Standard property for SOAPAction.
static StringSOAPACTION_USE_PROPERTY
Standard property for SOAPAction.
static StringUSERNAME_PROPERTY
Standard property: User name for authentication

Type: java.lang.String

Method Summary
voidaddParameter(String paramName, QName xmlType, ParameterMode parameterMode)
Adds a parameter type and mode for a specific operation.
voidaddParameter(String paramName, QName xmlType, Class javaType, ParameterMode parameterMode)
Adds a parameter type and mode for a specific operation.
QNamegetOperationName()
Gets the name of the operation to be invoked using this Call instance.
MapgetOutputParams()
Returns a Map of {name, value} for the output parameters of the last invoked operation.
ListgetOutputValues()
Returns a List values for the output parameters of the last invoked operation.
QNamegetParameterTypeByName(String paramName)
Gets the XML type of a parameter by name.
QNamegetPortTypeName()
Gets the qualified name of the port type.
ObjectgetProperty(String name)
Gets the value of a named property.
IteratorgetPropertyNames()
Gets the names of configurable properties supported by this Call object.
QNamegetReturnType()
Gets the return type for a specific operation.
StringgetTargetEndpointAddress()
Gets the address of a target service endpoint.
Objectinvoke(Object[] inputParams)
Invokes a specific operation using a synchronous request-response interaction mode.
Objectinvoke(QName operationName, Object[] inputParams)
Invokes a specific operation using a synchronous request-response interaction mode.
voidinvokeOneWay(Object[] params)
Invokes a remote method using the one-way interaction mode.
booleanisParameterAndReturnSpecRequired(QName operationName)
Indicates whether addParameter and setReturnType methods are to be invoked to specify the parameter and return type specification for a specific operation.
voidremoveAllParameters()
Removes all specified parameters from this Call instance.
voidremoveProperty(String name)
Removes a named property.
voidsetOperationName(QName operationName)
Sets the name of the operation to be invoked using this Call instance.
voidsetPortTypeName(QName portType)
Sets the qualified name of the port type.
voidsetProperty(String name, Object value)
Sets the value for a named property.
voidsetReturnType(QName xmlType)
Sets the return type for a specific operation.
voidsetReturnType(QName xmlType, Class javaType)
Sets the return type for a specific operation.
voidsetTargetEndpointAddress(String address)
Sets the address of the target service endpoint.

Field Detail

ENCODINGSTYLE_URI_PROPERTY

public 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

OPERATION_STYLE_PROPERTY

public 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

PASSWORD_PROPERTY

public static final String PASSWORD_PROPERTY
Standard property: Password for authentication

Type: java.lang.String

SESSION_MAINTAIN_PROPERTY

public 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

SOAPACTION_URI_PROPERTY

public 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

SOAPACTION_USE_PROPERTY

public 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

USERNAME_PROPERTY

public static final String USERNAME_PROPERTY
Standard property: User name for authentication

Type: java.lang.String

Method Detail

addParameter

public 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 datatype of the parameter parameterMode Mode of the parameter-whether ParameterMode.IN, ParameterMode.OUT, or ParameterMode.INOUT

Throws: JAXRPCException This exception may be thrown if the method isParameterAndReturnSpecRequired returns false for this operation. java.lang.IllegalArgumentException If any illegal parameter name or XML type is specified

addParameter

public 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 datatype of the parameter javaType The 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.
java.lang.IllegalArgumentException If any illegal parameter name or XML type is specified java.lang.UnsupportedOperationException If this method is not supported

getOperationName

public QName getOperationName()
Gets the name of the operation to be invoked using this Call instance.

Returns: Qualified name of the operation

getOutputParams

public 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: javax.xml.rpc.JAXRPCException If this method is invoked for a one-way operation or is invoked before any invoke method has been called.

getOutputValues

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

getParameterTypeByName

public 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

getPortTypeName

public QName getPortTypeName()
Gets the qualified name of the port type.

Returns: Qualified name of the port type

getProperty

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

getPropertyNames

public Iterator getPropertyNames()
Gets the names of configurable properties supported by this Call object.

Returns: Iterator for the property names

getReturnType

public QName getReturnType()
Gets the return type for a specific operation.

Returns: the XML type for the return value

getTargetEndpointAddress

public String getTargetEndpointAddress()
Gets the address of a target service endpoint.

Returns: Endpoint address of the target service port as an URI

invoke

public Object invoke(Object[] inputParams)
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: java.rmi.RemoteException if there is any error in the remote method invocation or if the Call object is not configured properly. javax.xml.rpc.soap.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

public Object invoke(QName operationName, Object[] inputParams)
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: java.rmi.RemoteException if there is any error in the remote method invocation. javax.xml.rpc.soap.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

invokeOneWay

public void invokeOneWay(Object[] params)
Invokes a remote method using the one-way interaction mode. The client thread does not block waiting for the completion of the server processing for this remote method invocation. This method must not throw any remote exceptions. This method may throw a JAXRPCException during the processing of the one-way remote call.

Parameters: params 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

isParameterAndReturnSpecRequired

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

removeAllParameters

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

removeProperty

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

setOperationName

public 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

setPortTypeName

public void setPortTypeName(QName portType)
Sets the qualified name of the port type.

Parameters: portType Qualified name of the port type

setProperty

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

setReturnType

public 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. java.lang.IllegalArgumentException If an illegal XML type is specified

setReturnType

public 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
java.lang.UnsupportedOperationException If this method is not supported java.lang.IllegalArgumentException If an illegal XML type is specified

setTargetEndpointAddress

public 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