org.apache.axis.client

Class Call

public class Call extends Object implements Call

Axis' JAXRPC Dynamic Invocation Interface implementation of the Call interface. This class should be used to actually invoke the Web Service. It can be prefilled by a WSDL document (on the constructor to the Service object) or you can fill in the data yourself.
 Standard properties defined by in JAX-RPC's javax..xml.rpc.Call interface:
     USERNAME_PROPERTY        - User name for authentication
     PASSWORD_PROPERTY        - Password for authentication
     SESSION_PROPERTY         - Participate in a session with the endpoint?
     OPERATION_STYLE_PROPERTY - "rpc" or "document"
     SOAPACTION_USE_PROPERTY  - Should SOAPAction be used?
     SOAPACTION_URI_PROPERTY  - If SOAPAction is used, this is that action
     ENCODING_STYLE_PROPERTY  - Default is SOAP 1.1:  "http://schemas.xmlsoap.org/soap/encoding/"

 AXIS properties:
     SEND_TYPE_ATTR - Should we send the XSI type attributes (true/false)
     TIMEOUT        - Timeout used by transport sender in milliseconds
     TRANSPORT_NAME - Name of transport handler to use
     ATTACHMENT_ENCAPSULATION_FORMAT- Send attachments as MIME the default, or DIME.
     CHARACTER_SET_ENCODING - Character set encoding to use for request
 

Author: Doug Davis (dug@us.ibm.com) Steve Loughran

Field Summary
static StringATTACHMENT_ENCAPSULATION_FORMAT
Property for setting attachment format.
static StringATTACHMENT_ENCAPSULATION_FORMAT_DIME
Property value for setting attachment format as DIME.
static StringATTACHMENT_ENCAPSULATION_FORMAT_MIME
Property value for setting attachment format as MIME.
static StringATTACHMENT_ENCAPSULATION_FORMAT_MTOM
Property value for setting attachment format as DIME.
protected VectorattachmentParts
these are our attachments
static StringCHARACTER_SET_ENCODING
This is the character set encoding to use for the message
static StringCHECK_MUST_UNDERSTAND
If this property is true, code will enforce must understand check on both the request and the response paths.
static StringCONNECTION_TIMEOUT_PROPERTY
Timeout property: should be accompanies by an integer
protected static LogentLog
static StringFAULT_ON_NO_RESPONSE
If this property is true, the code will throw a fault if there is no response message from the server.
static StringJAXRPC_PORTTYPE_NAME
static StringJAXRPC_SERVICE
protected static Loglog
protected static StringONE_WAY
Internal property to indicate a one way call.
static StringSEND_TYPE_ATTR
static StringSTREAMING_PROPERTY
Streaming property: should be accompanied by an boolean (i.e.
static StringTRANSPORT_NAME
This is the name of a property to set the transport of the message
static StringTRANSPORT_PROPERTY
This is not the name of a property that can be set with setProperty, despite its name.
static StringWSDL_PORT_NAME
this is a property set in the message context when the invocation process begins, for the benefit of handlers
static StringWSDL_SERVICE
this is a property set in the message context when the invocation process begins, for the benefit of handlers
Constructor Summary
Call(Service service)
Default constructor - not much else to say.
Call(String url)
Build a call from a URL string.
Call(URL url)
Build a call from a URL.
Method Summary
voidaddAttachmentPart(Object attachment)
This method adds an attachment.
voidaddFault(QName qname, Class cls, QName xmlType, boolean isComplex)
Add a fault for this operation.
voidaddHeader(SOAPHeaderElement header)
Add a header which should be inserted into each outgoing message we generate.
voidaddParameter(QName paramName, QName xmlType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.
voidaddParameter(QName paramName, QName xmlType, Class javaType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.
voidaddParameter(String paramName, QName xmlType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.
voidaddParameter(String paramName, QName xmlType, Class javaType, ParameterMode parameterMode)
Adds a parameter type and mode for a specific operation.
voidaddParameterAsHeader(QName paramName, QName xmlType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.
voidaddParameterAsHeader(QName paramName, QName xmlType, Class javaType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.
static voidaddTransportPackage(String packageName)
Add a package to the system protocol handler search path.
voidclearHeaders()
Clear the list of headers which we insert into each message Note: Not part of JAX-RPC specification.
voidclearOperation()
StringgetEncodingStyle()
Returns the encoding style as a URI that should be used for the SOAP message.
booleangetMaintainSession()
Get the value of maintainSession flag.
MessageContextgetMessageContext()
Obtain a reference to our MessageContext.
OperationDescgetOperation()
QNamegetOperationName()
Returns the operation name associated with this Call object.
StylegetOperationStyle()
Get the operation style.
UsegetOperationUse()
Get the operation use.
MapgetOutputParams()
Get the output parameters (if any) from the last invocation.
ListgetOutputValues()
Returns a List values for the output parameters of the last invoked operation.
QNamegetParameterTypeByName(String paramName)
Return the QName of the type of the parameters with the given name.
QNamegetParameterTypeByQName(QName paramQName)
Return the QName of the type of the parameters with the given name.
StringgetPassword()
Get the password.
QNamegetPortName()
Returns the fully qualified name of the port for this Call object (if there is one).
QNamegetPortTypeName()
Returns the fully qualified name of the port type for this Call object (if there is one).
ObjectgetProperty(String name)
Returns the value associated with the named property.
IteratorgetPropertyNames()
MessagegetResponseMessage()
Directly get the response message in our MessageContext.
QNamegetReturnType()
Returns the QName of the type of the return value of this Call - or null if not set.
ServicegetService()
Get the Service object associated with this Call object.
StringgetSOAPActionURI()
Get the soapAction URI.
booleangetStreaming()
StringgetTargetEndpointAddress()
Returns the URL of the target Web Service.
IntegergetTimeout()
TransportgetTransportForProtocol(String protocol)
Get the Transport registered for the given protocol.
TypeMappinggetTypeMapping()
StringgetUsername()
Get the user name.
static voidinitialize()
Set up the default transport URL mappings.
Objectinvoke(QName operationName, Object[] params)
Invokes a specific operation using a synchronous request-response interaction mode.
Objectinvoke(Object[] params)
Invokes the operation associated with this Call object using the passed in parameters as the arguments to the method.
SOAPEnvelopeinvoke(Message msg)
Invoke the service with a custom Message.
SOAPEnvelopeinvoke(SOAPEnvelope env)
Invoke the service with a custom SOAPEnvelope.
Objectinvoke(String namespace, String method, Object[] args)
Invoke an RPC service with a method name and arguments.
Objectinvoke(String method, Object[] args)
Convenience method to invoke a method with a default (empty) namespace.
Objectinvoke(RPCElement body)
Invoke an RPC service with a pre-constructed RPCElement.
voidinvoke()
Invoke this Call with its established MessageContext (perhaps because you called this.setRequestMessage()) Note: Not part of JAX-RPC specification.
voidinvokeOneWay(Object[] params)
Invokes the operation associated with this Call object using the passed in parameters as the arguments to the method.
booleanisParameterAndReturnSpecRequired(QName operationName)
Is the caller required to provide the parameter and return type specification?
booleanisPropertySupported(String name)
voidregisterTypeMapping(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df)
Register type mapping information for serialization/deserialization Note: Not part of JAX-RPC specification.
voidregisterTypeMapping(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df, boolean force)
Register type mapping information for serialization/deserialization Note: Not part of JAX-RPC specification.
voidregisterTypeMapping(Class javaType, QName xmlType, Class sfClass, Class dfClass)
register this type matting
voidregisterTypeMapping(Class javaType, QName xmlType, Class sfClass, Class dfClass, boolean force)
register a type.
voidremoveAllParameters()
Clears the list of parameters.
voidremoveProperty(String name)
Removes (if set) the named property.
voidsetClientHandlers(Handler reqHandler, Handler respHandler)
Sets the client-side request and response Handlers.
voidsetEncodingStyle(String namespaceURI)
Sets the encoding style to the URL passed in.
voidsetMaintainSession(boolean yesno)
Determine whether we'd like to track sessions or not.
voidsetOperation(String opName)
Prefill as much info from the WSDL as it can.
voidsetOperation(QName portName, String opName)
prefill as much info from the WSDL as it can.
voidsetOperation(QName portName, QName opName)
prefill as much info from the WSDL as it can.
voidsetOperation(OperationDesc operation)
Hand a complete OperationDesc to the Call, and note that this was done so that others don't try to mess with it by calling addParameter, setReturnType, etc.
voidsetOperationName(QName opName)
Sets the operation name associated with this Call object.
voidsetOperationName(String opName)
This is a convenience method.
voidsetOperationStyle(String operationStyle)
Set the operation style: "document", "rpc"
voidsetOperationStyle(Style operationStyle)
Set the operation style
voidsetOperationUse(String operationUse)
Set the operation use: "literal", "encoded"
voidsetOperationUse(Use operationUse)
Set the operation use
voidsetOption(String name, Object value)
Set engine option.
voidsetPassword(String password)
Set the password.
voidsetPortName(QName portName)
Sets the port name of this Call object.
voidsetPortTypeName(QName portType)
Sets the port type name of this Call object.
voidsetProperty(String name, Object value)
Allows you to set a named property to the passed in value.
voidsetRequestMessage(Message msg)
Directly set the request message in our MessageContext.
voidsetReturnClass(Class cls)
Sets the desired return Java Class.
voidsetReturnQName(QName qname)
Set the QName of the return element NOT part of JAX-RPC
voidsetReturnType(QName type)
Sets the return type of the operation associated with this Call object.
voidsetReturnType(QName xmlType, Class javaType)
Sets the return type for a specific operation.
voidsetReturnTypeAsHeader(QName xmlType)
Set the return type as a header
voidsetReturnTypeAsHeader(QName xmlType, Class javaType)
Set the return type as a header
voidsetSOAPActionURI(String SOAPActionURI)
Set the soapAction URI.
voidsetSOAPService(SOAPService service)
Set the service so that it defers missing property gets to the Call.
voidsetSOAPVersion(SOAPConstants soapConstants)
Allow the user to set the default SOAP version.
voidsetStreaming(boolean useStreaming)
voidsetTargetEndpointAddress(String address)
Sets the endpoint address of the target service port.
voidsetTargetEndpointAddress(URL address)
Sets the URL of the target Web Service.
voidsetTimeout(Integer timeout)
voidsetTransport(Transport trans)
Set the Transport Note: Not part of JAX-RPC specification.
static voidsetTransportForProtocol(String protocol, Class transportClass)
Register a Transport that should be used for URLs of the specified protocol.
voidsetUsername(String username)
Set the username.
voidsetUseSOAPAction(boolean useSOAPAction)
Flag to indicate if soapAction should be used.
booleanuseSOAPAction()
Discover if soapAction is being used.

Field Detail

ATTACHMENT_ENCAPSULATION_FORMAT

public static final String ATTACHMENT_ENCAPSULATION_FORMAT
Property for setting attachment format. Can be set to either DIME or MIME (default)

See Also: Call ATTACHMENT_ENCAPSULATION_FORMAT_DIME ATTACHMENT_ENCAPSULATION_FORMAT_MIME ATTACHMENT_ENCAPSULATION_FORMAT_MTOM

ATTACHMENT_ENCAPSULATION_FORMAT_DIME

public static final String ATTACHMENT_ENCAPSULATION_FORMAT_DIME
Property value for setting attachment format as DIME.

ATTACHMENT_ENCAPSULATION_FORMAT_MIME

public static final String ATTACHMENT_ENCAPSULATION_FORMAT_MIME
Property value for setting attachment format as MIME.

ATTACHMENT_ENCAPSULATION_FORMAT_MTOM

public static final String ATTACHMENT_ENCAPSULATION_FORMAT_MTOM
Property value for setting attachment format as DIME.

attachmentParts

protected Vector attachmentParts
these are our attachments

CHARACTER_SET_ENCODING

public static final String CHARACTER_SET_ENCODING
This is the character set encoding to use for the message

See Also: Call

CHECK_MUST_UNDERSTAND

public static final String CHECK_MUST_UNDERSTAND
If this property is true, code will enforce must understand check on both the request and the response paths.

CONNECTION_TIMEOUT_PROPERTY

public static final String CONNECTION_TIMEOUT_PROPERTY
Timeout property: should be accompanies by an integer

See Also: Call

entLog

protected static Log entLog

FAULT_ON_NO_RESPONSE

public static final String FAULT_ON_NO_RESPONSE
If this property is true, the code will throw a fault if there is no response message from the server. Otherwise, the invoke method will return a null.

JAXRPC_PORTTYPE_NAME

public static final String JAXRPC_PORTTYPE_NAME

Deprecated: use WSDL_PORT_NAME instead.

JAXRPC_SERVICE

public static final String JAXRPC_SERVICE

Deprecated: use WSDL_SERVICE instead.

log

protected static Log log

ONE_WAY

protected static final String ONE_WAY
Internal property to indicate a one way call. That will disable processing of response handlers.

SEND_TYPE_ATTR

public static final String SEND_TYPE_ATTR

STREAMING_PROPERTY

public static final String STREAMING_PROPERTY
Streaming property: should be accompanied by an boolean (i.e. NO high-fidelity recording, deserialize on the fly)

See Also: Call

TRANSPORT_NAME

public static final String TRANSPORT_NAME
This is the name of a property to set the transport of the message

See Also: Call

TRANSPORT_PROPERTY

public static final String TRANSPORT_PROPERTY
This is not the name of a property that can be set with setProperty, despite its name.

WSDL_PORT_NAME

public static final String WSDL_PORT_NAME
this is a property set in the message context when the invocation process begins, for the benefit of handlers

WSDL_SERVICE

public static final String WSDL_SERVICE
this is a property set in the message context when the invocation process begins, for the benefit of handlers

Constructor Detail

Call

public Call(Service service)
Default constructor - not much else to say.

Parameters: service the Service this Call will work with

Call

public Call(String url)
Build a call from a URL string. This is handy so that you don't have to manually call Call.initialize() in order to register custom transports. In other words, whereas doing a new URL("local:...") would fail, new Call("local:...") works because we do the initialization of our own and any configured custom protocols.

Parameters: url the target endpoint URL

Throws: MalformedURLException

Call

public Call(URL url)
Build a call from a URL.

Parameters: url the target endpoint URL

Method Detail

addAttachmentPart

public void addAttachmentPart(Object attachment)
This method adds an attachment.

Note: Not part of JAX-RPC specification.

Parameters: attachment the Object to attach

Throws: RuntimeException if there is no support for attachments

addFault

public void addFault(QName qname, Class cls, QName xmlType, boolean isComplex)
Add a fault for this operation.

Note: Not part of JAX-RPC specificaion.

Parameters: qname qname of the fault cls class of the fault xmlType XML type of the fault isComplex true if xmlType is a complex type, false otherwise

addHeader

public void addHeader(SOAPHeaderElement header)
Add a header which should be inserted into each outgoing message we generate. Note: Not part of JAX-RPC specification.

Parameters: header a SOAPHeaderElement to be inserted into messages

addParameter

public void addParameter(QName paramName, QName xmlType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object. Note: Not part of JAX-RPC specification.

Parameters: paramName Name that will be used for the parameter in the XML xmlType XMLType of the parameter parameterMode one of IN, OUT or INOUT

addParameter

public void addParameter(QName paramName, QName xmlType, Class javaType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object. Note: Not part of JAX-RPC specification.

Parameters: paramName Name that will be used for the parameter in the XML xmlType XMLType of the parameter javaType The Java class of the parameter parameterMode one of IN, OUT or INOUT

addParameter

public void addParameter(String paramName, QName xmlType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.

Parameters: paramName Name that will be used for the parameter in the XML xmlType XMLType of the parameter parameterMode one of IN, OUT or INOUT

addParameter

public void addParameter(String paramName, QName xmlType, Class javaType, ParameterMode parameterMode)
Adds a parameter type and mode for a specific operation. Note that the client code is not required to call any addParameter and setReturnType methods before calling the invoke method. A Call implementation class can determine the parameter types by using the Java reflection and configured type mapping registry.

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 IN, OUT or INOUT

Throws: JAXRPCException - if isParameterAndReturnSpecRequired returns false, then addParameter MAY throw JAXRPCException....actually Axis allows modification in such cases

addParameterAsHeader

public void addParameterAsHeader(QName paramName, QName xmlType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.

Parameters: paramName - Name of the parameter xmlType - XML datatype of the parameter parameterMode - Mode of the parameter-whether IN, OUT or INOUT headerMode - Mode of the header. Even if this is an INOUT parameter, it need not be in the header in both directions.

Throws: JAXRPCException - if isParameterAndReturnSpecRequired returns false, then addParameter MAY throw JAXRPCException....actually Axis allows modification in such cases

addParameterAsHeader

public void addParameterAsHeader(QName paramName, QName xmlType, Class javaType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.

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 IN, OUT or INOUT headerMode - Mode of the header. Even if this is an INOUT parameter, it need not be in the header in both directions.

Throws: JAXRPCException - if isParameterAndReturnSpecRequired returns false, then addParameter MAY throw JAXRPCException....actually Axis allows modification in such cases

addTransportPackage

public static void addTransportPackage(String packageName)
Add a package to the system protocol handler search path. This enables users to create their own URLStreamHandler classes, and thus allow custom protocols to be used in Axis (typically on the client command line). For instance, if you add "samples.transport" to the packages property, and have a class samples.transport.tcp.Handler, the system will be able to parse URLs of the form "tcp://host:port..." Note: Not part of JAX-RPC specification.

Parameters: packageName the package in which to search for protocol names.

clearHeaders

public void clearHeaders()
Clear the list of headers which we insert into each message Note: Not part of JAX-RPC specification.

clearOperation

public void clearOperation()

getEncodingStyle

public String getEncodingStyle()
Returns the encoding style as a URI that should be used for the SOAP message.

Returns: String URI of the encoding style to use

getMaintainSession

public boolean getMaintainSession()
Get the value of maintainSession flag.

Returns: true if session is maintained, false otherwise

getMessageContext

public MessageContext getMessageContext()
Obtain a reference to our MessageContext. Note: Not part of JAX-RPC specification.

Returns: the MessageContext.

getOperation

public OperationDesc getOperation()

getOperationName

public QName getOperationName()
Returns the operation name associated with this Call object.

Returns: String Name of the operation or null if not set.

getOperationStyle

public Style getOperationStyle()
Get the operation style.

Returns: the Style of the operation

getOperationUse

public Use getOperationUse()
Get the operation use.

Returns: the Use of the operation

getOutputParams

public Map getOutputParams()
Get the output parameters (if any) from the last invocation. This allows named access - if you need sequential access, use getOutputValues().

Returns: a Map containing the output parameter values, indexed by QName

getOutputValues

public List getOutputValues()
Returns a List values for the output parameters of the last invoked operation.

Returns: 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)
Return the QName of the type of the parameters with the given name.

Parameters: paramName name of the parameter to return

Returns: XMLType XMLType of paramName, or null if not found.

getParameterTypeByQName

public QName getParameterTypeByQName(QName paramQName)
Return the QName of the type of the parameters with the given name. Note: Not part of JAX-RPC specification.

Parameters: paramQName QName of the parameter to return

Returns: XMLType XMLType of paramQName, or null if not found.

getPassword

public String getPassword()
Get the password.

Returns: a plain-text copy of the password

getPortName

public QName getPortName()
Returns the fully qualified name of the port for this Call object (if there is one).

Returns: QName Fully qualified name of the port (or null if not set)

getPortTypeName

public QName getPortTypeName()
Returns the fully qualified name of the port type for this Call object (if there is one).

Returns: QName Fully qualified name of the port type

getProperty

public Object getProperty(String name)
Returns the value associated with the named property.

Parameters: name the name of the property

Returns: Object value of the property or null if the property is not set

Throws: JAXRPCException if the requested property is not a supported property

getPropertyNames

public Iterator getPropertyNames()

getResponseMessage

public Message getResponseMessage()
Directly get the response message in our MessageContext. Shortcut for having to go thru the msgContext Note: Not part of JAX-RPC specification.

Returns: the response Message object in the msgContext

getReturnType

public QName getReturnType()
Returns the QName of the type of the return value of this Call - or null if not set. Note: Not part of JAX-RPC specification.

Returns: the XMLType specified for this Call (or null).

getService

public Service getService()
Get the Service object associated with this Call object. Note: Not part of JAX-RPC specification.

Returns: Service the Service object this Call object is associated with

getSOAPActionURI

public String getSOAPActionURI()
Get the soapAction URI.

Returns: the curretn SOAP action URI

getStreaming

public boolean getStreaming()

getTargetEndpointAddress

public String getTargetEndpointAddress()
Returns the URL of the target Web Service.

Returns: URL URL of the target Web Service

getTimeout

public Integer getTimeout()

getTransportForProtocol

public Transport getTransportForProtocol(String protocol)
Get the Transport registered for the given protocol. Note: Not part of JAX-RPC specification.

Parameters: protocol a protocol such as "http" or "local" which may have a Transport object associated with it.

Returns: the Transport registered for this protocol, or null if none.

getTypeMapping

public TypeMapping getTypeMapping()

getUsername

public String getUsername()
Get the user name.

Returns: the user name

initialize

public static void initialize()
Set up the default transport URL mappings. This must be called BEFORE doing non-standard URL parsing (i.e. if you want the system to accept a "local:" URL). This is why the Options class calls it before parsing the command-line URL argument. Note: Not part of JAX-RPC specification.

invoke

public Object invoke(QName operationName, Object[] params)
Invokes a specific operation using a synchronous request-response interaction mode. The invoke method takes as parameters the object values corresponding to these defined parameter types. Implementation of the invoke method must check whether the passed parameter values correspond to the number, order and types of parameters specified in the corresponding operation specification.

Parameters: operationName - Name of the operation to invoke params - Parameters for this invocation

Returns: the value returned from the other end.

Throws: java.rmi.RemoteException - if there is any error in the remote method invocation or if the Call object is not configured properly.

invoke

public Object invoke(Object[] params)
Invokes the operation associated with this Call object using the passed in parameters as the arguments to the method. For Messaging (ie. non-RPC) the params argument should be an array of SOAPBodyElements. All of them need to be SOAPBodyElements, if any of them are not this method will default back to RPC. In the Messaging case the return value will be a vector of SOAPBodyElements.

Parameters: params Array of parameters to invoke the Web Service with

Returns: Object Return value of the operation/method - or null

Throws: java.rmi.RemoteException if there's an error

invoke

public SOAPEnvelope invoke(Message msg)
Invoke the service with a custom Message. This method simplifies invoke(SOAPEnvelope).

Note: Not part of JAX-RPC specification.

Parameters: msg a Message to send

Throws: AxisFault if there is any failure

invoke

public SOAPEnvelope invoke(SOAPEnvelope env)
Invoke the service with a custom SOAPEnvelope.

Note: Not part of JAX-RPC specification.

Parameters: env a SOAPEnvelope to send

Throws: AxisFault if there is any failure

invoke

public Object invoke(String namespace, String method, Object[] args)
Invoke an RPC service with a method name and arguments. This will call the service, serializing all the arguments, and then deserialize the return value. Note: Not part of JAX-RPC specification.

Parameters: namespace the desired namespace URI of the method element method the method name args an array of Objects representing the arguments to the invoked method. If any of these objects are RPCParams, Axis will use the embedded name of the RPCParam as the name of the parameter. Otherwise, we will serialize each argument as an XML element called "arg".

Returns: a deserialized Java Object containing the return value

Throws: AxisFault

invoke

public Object invoke(String method, Object[] args)
Convenience method to invoke a method with a default (empty) namespace. Calls invoke() above. Note: Not part of JAX-RPC specification.

Parameters: method the method name args an array of Objects representing the arguments to the invoked method. If any of these objects are RPCParams, Axis will use the embedded name of the RPCParam as the name of the parameter. Otherwise, we will serialize each argument as an XML element called "arg".

Returns: a deserialized Java Object containing the return value

Throws: AxisFault

invoke

public Object invoke(RPCElement body)
Invoke an RPC service with a pre-constructed RPCElement. Note: Not part of JAX-RPC specification.

Parameters: body an RPCElement containing all the information about this call.

Returns: a deserialized Java Object containing the return value

Throws: AxisFault

invoke

public void invoke()
Invoke this Call with its established MessageContext (perhaps because you called this.setRequestMessage()) Note: Not part of JAX-RPC specification.

Throws: AxisFault

invokeOneWay

public void invokeOneWay(Object[] params)
Invokes the operation associated with this Call object using the passed in parameters as the arguments to the method. This will return immediately rather than waiting for the server to complete its processing. NOTE: the return immediately part isn't implemented yet

Parameters: params Array of parameters to invoke the Web Service with

Throws: JAXRPCException is there's an error

isParameterAndReturnSpecRequired

public boolean isParameterAndReturnSpecRequired(QName operationName)
Is the caller required to provide the parameter and return type specification? If true, then addParameter and setReturnType MUST be called to provide the meta data. If false, then addParameter and setReturnType SHOULD NOT be called because the Call object already has the meta data describing the parameters and return type. If addParameter is called, the specified parameter is added to the end of the list of parameters.

isPropertySupported

public boolean isPropertySupported(String name)

registerTypeMapping

public void registerTypeMapping(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df)
Register type mapping information for serialization/deserialization Note: Not part of JAX-RPC specification.

Parameters: javaType is the Java class of the data type. xmlType the xsi:type QName of the associated XML type. sf/df are the factories (or the Class objects of the factory).

registerTypeMapping

public void registerTypeMapping(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df, boolean force)
Register type mapping information for serialization/deserialization Note: Not part of JAX-RPC specification.

Parameters: javaType is the Java class of the data type. xmlType the xsi:type QName of the associated XML type. sf/df are the factories (or the Class objects of the factory). force Indicates whether to add the information if already registered.

registerTypeMapping

public void registerTypeMapping(Class javaType, QName xmlType, Class sfClass, Class dfClass)
register this type matting

Parameters: javaType xmlType sfClass dfClass

registerTypeMapping

public void registerTypeMapping(Class javaType, QName xmlType, Class sfClass, Class dfClass, boolean force)
register a type. This only takes place if either the serializer or deserializer factory could be created.

Parameters: javaType java type to handle xmlType XML mapping sfClass class of serializer factory dfClass class of deserializer factory force

removeAllParameters

public void removeAllParameters()
Clears the list of parameters.

Throws: JAXRPCException - if isParameterAndReturnSpecRequired returns false, then removeAllParameters MAY throw JAXRPCException...Axis allows modification to the Call object without throwing an exception.

removeProperty

public void removeProperty(String name)
Removes (if set) the named property.

Parameters: name name of the property to remove

setClientHandlers

public void setClientHandlers(Handler reqHandler, Handler respHandler)
Sets the client-side request and response Handlers. This is handy for programatically setting up client-side work without deploying via WSDD or the EngineConfiguration mechanism.

setEncodingStyle

public void setEncodingStyle(String namespaceURI)
Sets the encoding style to the URL passed in.

Parameters: namespaceURI URI of the encoding to use.

setMaintainSession

public void setMaintainSession(boolean yesno)
Determine whether we'd like to track sessions or not. This overrides the default setting from the service. This just passes through the value into the MessageContext. Note: Not part of JAX-RPC specification.

Parameters: yesno true if session state is desired, false if not.

setOperation

public void setOperation(String opName)
Prefill as much info from the WSDL as it can. Right now it's SOAPAction, operation qname, parameter types and return type of the Web Service. This methods considers that port name and target endpoint address have already been set. This is useful when you want to use the same Call instance for several calls on the same Port Note: Not part of JAX-RPC specification.

Parameters: opName Operation(method) that's going to be invoked

Throws: JAXRPCException

setOperation

public void setOperation(QName portName, String opName)
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. If wsdl is not present, this function set port name and operation name and does not modify target endpoint address. Note: Not part of JAX-RPC specification.

Parameters: portName PortName in the WSDL doc to search for opName Operation(method) that's going to be invoked

setOperation

public void setOperation(QName portName, QName opName)
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. If wsdl is not present, this function set port name and operation name and does not modify target endpoint address. Note: Not part of JAX-RPC specification.

Parameters: portName PortName in the WSDL doc to search for opName Operation(method) that's going to be invoked

setOperation

public void setOperation(OperationDesc operation)
Hand a complete OperationDesc to the Call, and note that this was done so that others don't try to mess with it by calling addParameter, setReturnType, etc.

Parameters: operation the OperationDesc to associate with this call.

setOperationName

public void setOperationName(QName opName)
Sets the operation name associated with this Call object. This will not check the WSDL (if there is WSDL) to make sure that it's a valid operation name.

Parameters: opName Name of the operation.

setOperationName

public void setOperationName(String opName)
This is a convenience method. If the user doesn't care about the QName of the operation, the user can call this method, which converts a String operation name to a QName.

setOperationStyle

public void setOperationStyle(String operationStyle)
Set the operation style: "document", "rpc"

Parameters: operationStyle string designating style

setOperationStyle

public void setOperationStyle(Style operationStyle)
Set the operation style

Parameters: operationStyle

setOperationUse

public void setOperationUse(String operationUse)
Set the operation use: "literal", "encoded"

Parameters: operationUse string designating use

setOperationUse

public void setOperationUse(Use operationUse)
Set the operation use

Parameters: operationUse

setOption

public void setOption(String name, Object value)
Set engine option. Note: Not part of JAX-RPC specification.

setPassword

public void setPassword(String password)
Set the password.

Parameters: password plain-text copy of the password

setPortName

public void setPortName(QName portName)
Sets the port name of this Call object. This call will not set any additional fields, nor will it do any checking to verify that this port name is actually defined in the WSDL - for now anyway.

Parameters: portName Fully qualified name of the port

setPortTypeName

public void setPortTypeName(QName portType)
Sets the port type name of this Call object. This call will not set any additional fields, nor will it do any checking to verify that this port type is actually defined in the WSDL - for now anyway.

Parameters: portType Fully qualified name of the portType

setProperty

public void setProperty(String name, Object value)
Allows you to set a named property to the passed in value. There are a few known properties (like username, password, etc) that are variables in Call. The rest of the properties are stored in a Hashtable. These common properties should be accessed via the accessors for speed/type safety, but they may still be obtained via this method. It's up to one of the Handlers (or the Axis engine itself) to go looking for one of them. There are various well defined properties defined in the JAX-RPC specification and declared in the Call and Stub classes. It is not possible to set any other properties beginning in java. or javax. that are not in the specification.

Parameters: name Name of the property value Value of the property

See Also: Stub There are other properties implemented in this class above and beyond those of the JAX-RPC spec Specifically, ATTACHMENT_ENCAPSULATION_FORMAT, CONNECTION_TIMEOUT_PROPERTY, and TRANSPORT_NAME. It is intended that all future Axis-specific properties will begin with axis. or apache. To ensure integration with future versions Axis, use different prefixes for your own properties. Axis developers: keep this in sync with propertyNames below ATTACHMENT_ENCAPSULATION_FORMAT TRANSPORT_NAME CONNECTION_TIMEOUT_PROPERTY

setRequestMessage

public void setRequestMessage(Message msg)
Directly set the request message in our MessageContext. This allows custom message creation. Note: Not part of JAX-RPC specification.

Parameters: msg the new request message.

Throws: RuntimeException containing the text of an AxisFault, if any AxisFault was thrown

setReturnClass

public void setReturnClass(Class cls)
Sets the desired return Java Class. This is a convenience method which will cause the Call to automatically convert return values into a desired class if possible. For instance, we return object arrays by default now for SOAP arrays - you could specify: setReturnClass(Vector.class) and you'd get a Vector back from invoke() instead of having to do the conversion yourself. Note: Not part of JAX-RPC specification. To be JAX-RPC compliant, use setReturnType(QName, Class).

Parameters: cls the desired return class.

setReturnQName

public void setReturnQName(QName qname)
Set the QName of the return element NOT part of JAX-RPC

setReturnType

public void setReturnType(QName type)
Sets the return type of the operation associated with this Call object.

Parameters: type QName of the return value type.

setReturnType

public void setReturnType(QName xmlType, Class javaType)
Sets the return type for a specific operation.

Parameters: xmlType - QName of the data type of the return value javaType - Java class of the return value

Throws: JAXRPCException - if isParameterAndReturnSpecRequired returns false, then setReturnType MAY throw JAXRPCException...Axis allows modification without throwing the exception.

setReturnTypeAsHeader

public void setReturnTypeAsHeader(QName xmlType)
Set the return type as a header

setReturnTypeAsHeader

public void setReturnTypeAsHeader(QName xmlType, Class javaType)
Set the return type as a header

setSOAPActionURI

public void setSOAPActionURI(String SOAPActionURI)
Set the soapAction URI.

Parameters: SOAPActionURI the new SOAP action URI

setSOAPService

public void setSOAPService(SOAPService service)
Set the service so that it defers missing property gets to the Call. So when client-side Handlers get at the MessageContext, the property scoping will be MC -> SOAPService -> Call

setSOAPVersion

public void setSOAPVersion(SOAPConstants soapConstants)
Allow the user to set the default SOAP version. For SOAP 1.2, pass SOAPConstants.SOAP12_CONSTANTS.

Parameters: soapConstants the SOAPConstants object representing the correct version

setStreaming

public void setStreaming(boolean useStreaming)

setTargetEndpointAddress

public void setTargetEndpointAddress(String address)
Sets the endpoint address of the target service port. This address must correspond to the transport specified in the binding for this Call instance.

Parameters: address - Endpoint address of the target service port; specified as URI

setTargetEndpointAddress

public void setTargetEndpointAddress(URL address)
Sets the URL of the target Web Service. Note: Not part of JAX-RPC specification.

Parameters: address URL of the target Web Service

setTimeout

public void setTimeout(Integer timeout)

setTransport

public void setTransport(Transport trans)
Set the Transport Note: Not part of JAX-RPC specification.

Parameters: trans the Transport object we'll use to set up MessageContext properties.

setTransportForProtocol

public static void setTransportForProtocol(String protocol, Class transportClass)
Register a Transport that should be used for URLs of the specified protocol. Note: Not part of JAX-RPC specification.

Parameters: protocol the URL protocol (i.e. "tcp" for "tcp://" urls) transportClass the class of a Transport type which will be used for matching URLs.

setUsername

public void setUsername(String username)
Set the username.

Parameters: username the new user name

setUseSOAPAction

public void setUseSOAPAction(boolean useSOAPAction)
Flag to indicate if soapAction should be used.

Parameters: useSOAPAction true if the soapAction header is to be used to help find the method to invoke, false otherwise

useSOAPAction

public boolean useSOAPAction()
Discover if soapAction is being used.

Returns: true if it is, false otherwise

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.