Package org.apache.axis.client
Class Call
- java.lang.Object
-
- org.apache.axis.client.Call
-
- All Implemented Interfaces:
Call
public class Call extends java.lang.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
Fields Modifier and Type Field Description static java.lang.String
ATTACHMENT_ENCAPSULATION_FORMAT
Property for setting attachment format.static java.lang.String
ATTACHMENT_ENCAPSULATION_FORMAT_DIME
Property value for setting attachment format as DIME.static java.lang.String
ATTACHMENT_ENCAPSULATION_FORMAT_MIME
Property value for setting attachment format as MIME.static java.lang.String
ATTACHMENT_ENCAPSULATION_FORMAT_MTOM
Property value for setting attachment format as DIME.protected java.util.Vector
attachmentParts
these are our attachmentsstatic java.lang.String
CHARACTER_SET_ENCODING
This is the character set encoding to use for the messagestatic java.lang.String
CHECK_MUST_UNDERSTAND
If this property is true, code will enforce must understand check on both the request and the response paths.static java.lang.String
CONNECTION_TIMEOUT_PROPERTY
Timeout property: should be accompanies by an integerprotected static org.apache.commons.logging.Log
entLog
static java.lang.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.static java.lang.String
JAXRPC_PORTTYPE_NAME
Deprecated.use WSDL_PORT_NAME instead.static java.lang.String
JAXRPC_SERVICE
Deprecated.use WSDL_SERVICE instead.protected static org.apache.commons.logging.Log
log
protected static java.lang.String
ONE_WAY
Internal property to indicate a one way call.static java.lang.String
SEND_TYPE_ATTR
static java.lang.String
STREAMING_PROPERTY
Streaming property: should be accompanied by an boolean (i.e.static java.lang.String
TRANSPORT_NAME
This is the name of a property to set the transport of the messagestatic java.lang.String
TRANSPORT_PROPERTY
This is not the name of a property that can be set with setProperty, despite its name.static java.lang.String
WSDL_PORT_NAME
this is a property set in the message context when the invocation process begins, for the benefit of handlersstatic java.lang.String
WSDL_SERVICE
this is a property set in the message context when the invocation process begins, for the benefit of handlers-
Fields inherited from interface javax.xml.rpc.Call
ENCODINGSTYLE_URI_PROPERTY, OPERATION_STYLE_PROPERTY, PASSWORD_PROPERTY, SESSION_MAINTAIN_PROPERTY, SOAPACTION_URI_PROPERTY, SOAPACTION_USE_PROPERTY, USERNAME_PROPERTY
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAttachmentPart(java.lang.Object attachment)
This method adds an attachment.void
addFault(QName qname, java.lang.Class cls, QName xmlType, boolean isComplex)
Add a fault for this operation.void
addHeader(SOAPHeaderElement header)
Add a header which should be inserted into each outgoing message we generate.void
addParameter(java.lang.String paramName, QName xmlType, java.lang.Class javaType, ParameterMode parameterMode)
Adds a parameter type and mode for a specific operation.void
addParameter(java.lang.String paramName, QName xmlType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.void
addParameter(QName paramName, QName xmlType, java.lang.Class javaType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.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.void
addParameterAsHeader(QName paramName, QName xmlType, java.lang.Class javaType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.void
addParameterAsHeader(QName paramName, QName xmlType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.static void
addTransportPackage(java.lang.String packageName)
Add a package to the system protocol handler search path.void
clearHeaders()
Clear the list of headers which we insert into each message Note: Not part of JAX-RPC specification.void
clearOperation()
java.lang.String
getEncodingStyle()
Returns the encoding style as a URI that should be used for the SOAP message.boolean
getMaintainSession()
Get the value of maintainSession flag.MessageContext
getMessageContext()
Obtain a reference to our MessageContext.OperationDesc
getOperation()
QName
getOperationName()
Returns the operation name associated with this Call object.Style
getOperationStyle()
Get the operation style.Use
getOperationUse()
Get the operation use.java.util.Map
getOutputParams()
Get the output parameters (if any) from the last invocation.java.util.List
getOutputValues()
Returns a List values for the output parameters of the last invoked operation.QName
getParameterTypeByName(java.lang.String paramName)
Return the QName of the type of the parameters with the given name.QName
getParameterTypeByQName(QName paramQName)
Return the QName of the type of the parameters with the given name.java.lang.String
getPassword()
Get the password.QName
getPortName()
Returns the fully qualified name of the port for this Call object (if there is one).QName
getPortTypeName()
Returns the fully qualified name of the port type for this Call object (if there is one).java.lang.Object
getProperty(java.lang.String name)
Returns the value associated with the named property.java.util.Iterator
getPropertyNames()
Gets the names of configurable properties supported by thisCall
object.Message
getResponseMessage()
Directly get the response message in our MessageContext.QName
getReturnType()
Returns the QName of the type of the return value of this Call - or null if not set.Service
getService()
Get the Service object associated with this Call object.java.lang.String
getSOAPActionURI()
Get the soapAction URI.boolean
getStreaming()
java.lang.String
getTargetEndpointAddress()
Returns the URL of the target Web Service.java.lang.Integer
getTimeout()
Transport
getTransportForProtocol(java.lang.String protocol)
Get the Transport registered for the given protocol.TypeMapping
getTypeMapping()
java.lang.String
getUsername()
Get the user name.static void
initialize()
Set up the default transport URL mappings.void
invoke()
Invoke this Call with its established MessageContext (perhaps because you called this.setRequestMessage()) Note: Not part of JAX-RPC specification.java.lang.Object
invoke(java.lang.Object[] params)
Invokes the operation associated with this Call object using the passed in parameters as the arguments to the method.java.lang.Object
invoke(java.lang.String method, java.lang.Object[] args)
Convenience method to invoke a method with a default (empty) namespace.java.lang.Object
invoke(java.lang.String namespace, java.lang.String method, java.lang.Object[] args)
Invoke an RPC service with a method name and arguments.java.lang.Object
invoke(QName operationName, java.lang.Object[] params)
Invokes a specific operation using a synchronous request-response interaction mode.SOAPEnvelope
invoke(Message msg)
Invoke the service with a custom Message.java.lang.Object
invoke(RPCElement body)
Invoke an RPC service with a pre-constructed RPCElement.SOAPEnvelope
invoke(SOAPEnvelope env)
Invoke the service with a custom SOAPEnvelope.void
invokeOneWay(java.lang.Object[] params)
Invokes the operation associated with this Call object using the passed in parameters as the arguments to the method.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.boolean
isPropertySupported(java.lang.String name)
void
registerTypeMapping(java.lang.Class javaType, QName xmlType, java.lang.Class sfClass, java.lang.Class dfClass)
register this type mattingvoid
registerTypeMapping(java.lang.Class javaType, QName xmlType, java.lang.Class sfClass, java.lang.Class dfClass, boolean force)
register a type.void
registerTypeMapping(java.lang.Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df)
Register type mapping information for serialization/deserialization Note: Not part of JAX-RPC specification.void
registerTypeMapping(java.lang.Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df, boolean force)
Register type mapping information for serialization/deserialization Note: Not part of JAX-RPC specification.void
removeAllParameters()
Clears the list of parameters.void
removeProperty(java.lang.String name)
Removes (if set) the named property.void
setClientHandlers(Handler reqHandler, Handler respHandler)
Sets the client-side request and response Handlers.void
setEncodingStyle(java.lang.String namespaceURI)
Sets the encoding style to the URL passed in.void
setMaintainSession(boolean yesno)
Determine whether we'd like to track sessions or not.void
setOperation(java.lang.String opName)
Prefill as much info from the WSDL as it can.void
setOperation(QName portName, java.lang.String opName)
prefill as much info from the WSDL as it can.void
setOperation(QName portName, QName opName)
prefill as much info from the WSDL as it can.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.void
setOperationName(java.lang.String opName)
This is a convenience method.void
setOperationName(QName opName)
Sets the operation name associated with this Call object.void
setOperationStyle(java.lang.String operationStyle)
Set the operation style: "document", "rpc"void
setOperationStyle(Style operationStyle)
Set the operation stylevoid
setOperationUse(java.lang.String operationUse)
Set the operation use: "literal", "encoded"void
setOperationUse(Use operationUse)
Set the operation usevoid
setOption(java.lang.String name, java.lang.Object value)
Set engine option.void
setPassword(java.lang.String password)
Set the password.void
setPortName(QName portName)
Sets the port name of this Call object.void
setPortTypeName(QName portType)
Sets the port type name of this Call object.void
setProperty(java.lang.String name, java.lang.Object value)
Allows you to set a named property to the passed in value.void
setRequestMessage(Message msg)
Directly set the request message in our MessageContext.void
setReturnClass(java.lang.Class cls)
Sets the desired return Java Class.void
setReturnQName(QName qname)
Set the QName of the return element NOT part of JAX-RPCvoid
setReturnType(QName type)
Sets the return type of the operation associated with this Call object.void
setReturnType(QName xmlType, java.lang.Class javaType)
Sets the return type for a specific operation.void
setReturnTypeAsHeader(QName xmlType)
Set the return type as a headervoid
setReturnTypeAsHeader(QName xmlType, java.lang.Class javaType)
Set the return type as a headervoid
setSOAPActionURI(java.lang.String SOAPActionURI)
Set the soapAction URI.void
setSOAPService(SOAPService service)
Set the service so that it defers missing property gets to the Call.void
setSOAPVersion(SOAPConstants soapConstants)
Allow the user to set the default SOAP version.void
setStreaming(boolean useStreaming)
void
setTargetEndpointAddress(java.lang.String address)
Sets the endpoint address of the target service port.void
setTargetEndpointAddress(java.net.URL address)
Sets the URL of the target Web Service.void
setTimeout(java.lang.Integer timeout)
void
setTransport(Transport trans)
Set the Transport Note: Not part of JAX-RPC specification.static void
setTransportForProtocol(java.lang.String protocol, java.lang.Class transportClass)
Register a Transport that should be used for URLs of the specified protocol.void
setUsername(java.lang.String username)
Set the username.void
setUseSOAPAction(boolean useSOAPAction)
Flag to indicate if soapAction should be used.boolean
useSOAPAction()
Discover if soapAction is being used.
-
-
-
Field Detail
-
log
protected static org.apache.commons.logging.Log log
-
entLog
protected static org.apache.commons.logging.Log entLog
-
SEND_TYPE_ATTR
public static final java.lang.String SEND_TYPE_ATTR
- See Also:
- Constant Field Values
-
TRANSPORT_NAME
public static final java.lang.String TRANSPORT_NAME
This is the name of a property to set the transport of the message
-
CHARACTER_SET_ENCODING
public static final java.lang.String CHARACTER_SET_ENCODING
This is the character set encoding to use for the message
-
TRANSPORT_PROPERTY
public static final java.lang.String TRANSPORT_PROPERTY
This is not the name of a property that can be set with setProperty, despite its name.- See Also:
- Constant Field Values
-
WSDL_SERVICE
public static final java.lang.String WSDL_SERVICE
this is a property set in the message context when the invocation process begins, for the benefit of handlers- See Also:
- Constant Field Values
-
WSDL_PORT_NAME
public static final java.lang.String WSDL_PORT_NAME
this is a property set in the message context when the invocation process begins, for the benefit of handlers- See Also:
- Constant Field Values
-
JAXRPC_SERVICE
public static final java.lang.String JAXRPC_SERVICE
Deprecated.use WSDL_SERVICE instead.- See Also:
- Constant Field Values
-
JAXRPC_PORTTYPE_NAME
public static final java.lang.String JAXRPC_PORTTYPE_NAME
Deprecated.use WSDL_PORT_NAME instead.- See Also:
- Constant Field Values
-
FAULT_ON_NO_RESPONSE
public static final java.lang.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.- See Also:
- Constant Field Values
-
CHECK_MUST_UNDERSTAND
public static final java.lang.String CHECK_MUST_UNDERSTAND
If this property is true, code will enforce must understand check on both the request and the response paths.- See Also:
- Constant Field Values
-
ATTACHMENT_ENCAPSULATION_FORMAT
public static final java.lang.String ATTACHMENT_ENCAPSULATION_FORMAT
Property for setting attachment format. Can be set to either DIME or MIME (default)
-
ATTACHMENT_ENCAPSULATION_FORMAT_MIME
public static final java.lang.String ATTACHMENT_ENCAPSULATION_FORMAT_MIME
Property value for setting attachment format as MIME.- See Also:
- Constant Field Values
-
ATTACHMENT_ENCAPSULATION_FORMAT_DIME
public static final java.lang.String ATTACHMENT_ENCAPSULATION_FORMAT_DIME
Property value for setting attachment format as DIME.- See Also:
- Constant Field Values
-
ATTACHMENT_ENCAPSULATION_FORMAT_MTOM
public static final java.lang.String ATTACHMENT_ENCAPSULATION_FORMAT_MTOM
Property value for setting attachment format as DIME.- See Also:
- Constant Field Values
-
CONNECTION_TIMEOUT_PROPERTY
public static final java.lang.String CONNECTION_TIMEOUT_PROPERTY
Timeout property: should be accompanies by an integer
-
STREAMING_PROPERTY
public static final java.lang.String STREAMING_PROPERTY
Streaming property: should be accompanied by an boolean (i.e. NO high-fidelity recording, deserialize on the fly)
-
ONE_WAY
protected static final java.lang.String ONE_WAY
Internal property to indicate a one way call. That will disable processing of response handlers.- See Also:
- Constant Field Values
-
attachmentParts
protected java.util.Vector attachmentParts
these are our attachments
-
-
Constructor Detail
-
Call
public Call(Service service)
Default constructor - not much else to say.- Parameters:
service
- theService
thisCall
will work with
-
Call
public Call(java.lang.String url) throws java.net.MalformedURLException
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:
java.net.MalformedURLException
-
Call
public Call(java.net.URL url)
Build a call from a URL.- Parameters:
url
- the target endpoint URL
-
-
Method Detail
-
setProperty
public void setProperty(java.lang.String name, java.lang.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.- Specified by:
setProperty
in interfaceCall
- Parameters:
name
- Name of the propertyvalue
- 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
-
getProperty
public java.lang.Object getProperty(java.lang.String name)
Returns the value associated with the named property.- Specified by:
getProperty
in interfaceCall
- 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
-
removeProperty
public void removeProperty(java.lang.String name)
Removes (if set) the named property.- Specified by:
removeProperty
in interfaceCall
- Parameters:
name
- name of the property to remove
-
getPropertyNames
public java.util.Iterator getPropertyNames()
Description copied from interface:Call
Gets the names of configurable properties supported by thisCall
object.- Specified by:
getPropertyNames
in interfaceCall
- Returns:
- Iterator for the property names
-
isPropertySupported
public boolean isPropertySupported(java.lang.String name)
-
setUsername
public void setUsername(java.lang.String username)
Set the username.- Parameters:
username
- the new user name
-
getUsername
public java.lang.String getUsername()
Get the user name.- Returns:
- the user name
-
setPassword
public void setPassword(java.lang.String password)
Set the password.- Parameters:
password
- plain-text copy of the password
-
getPassword
public java.lang.String getPassword()
Get the password.- Returns:
- a plain-text copy of the password
-
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.
-
getMaintainSession
public boolean getMaintainSession()
Get the value of maintainSession flag.- Returns:
- true if session is maintained, false otherwise
-
setOperationStyle
public void setOperationStyle(java.lang.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
-
-
getOperationStyle
public Style getOperationStyle()
Get the operation style.- Returns:
- the
Style
of the operation
-
setOperationUse
public void setOperationUse(java.lang.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
-
-
getOperationUse
public Use getOperationUse()
Get the operation use.- Returns:
- the
Use
of the operation
-
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
-
setSOAPActionURI
public void setSOAPActionURI(java.lang.String SOAPActionURI)
Set the soapAction URI.- Parameters:
SOAPActionURI
- the new SOAP action URI
-
getSOAPActionURI
public java.lang.String getSOAPActionURI()
Get the soapAction URI.- Returns:
- the curretn SOAP action URI
-
setEncodingStyle
public void setEncodingStyle(java.lang.String namespaceURI)
Sets the encoding style to the URL passed in.- Parameters:
namespaceURI
- URI of the encoding to use.
-
getEncodingStyle
public java.lang.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
-
setTargetEndpointAddress
public void setTargetEndpointAddress(java.lang.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.- Specified by:
setTargetEndpointAddress
in interfaceCall
- Parameters:
address
- - Endpoint address of the target service port; specified as URI
-
setTargetEndpointAddress
public void setTargetEndpointAddress(java.net.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
-
getTargetEndpointAddress
public java.lang.String getTargetEndpointAddress()
Returns the URL of the target Web Service.- Specified by:
getTargetEndpointAddress
in interfaceCall
- Returns:
- URL URL of the target Web Service
-
getTimeout
public java.lang.Integer getTimeout()
-
setTimeout
public void setTimeout(java.lang.Integer timeout)
-
getStreaming
public boolean getStreaming()
-
setStreaming
public void setStreaming(boolean useStreaming)
-
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.- Specified by:
isParameterAndReturnSpecRequired
in interfaceCall
- 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.
-
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 XMLxmlType
- XMLType of the parameterparameterMode
- one of IN, OUT or INOUT
-
addParameter
public void addParameter(QName paramName, QName xmlType, java.lang.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 XMLxmlType
- XMLType of the parameterjavaType
- The Java class of the parameterparameterMode
- one of IN, OUT or INOUT
-
addParameter
public void addParameter(java.lang.String paramName, QName xmlType, ParameterMode parameterMode)
Adds the specified parameter to the list of parameters for the operation associated with this Call object.- Specified by:
addParameter
in interfaceCall
- Parameters:
paramName
- Name that will be used for the parameter in the XMLxmlType
- XMLType of the parameterparameterMode
- one of IN, OUT or INOUT
-
addParameter
public void addParameter(java.lang.String paramName, QName xmlType, java.lang.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.- Specified by:
addParameter
in interfaceCall
- Parameters:
paramName
- - Name of the parameterxmlType
- - XML datatype of the parameterjavaType
- - The Java class of the parameterparameterMode
- - 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 parameterxmlType
- - XML datatype of the parameterparameterMode
- - Mode of the parameter-whether IN, OUT or INOUTheaderMode
- - 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, java.lang.Class javaType, ParameterMode parameterMode, ParameterMode headerMode)
Adds a parameter type as a soap:header.- Parameters:
paramName
- - Name of the parameterxmlType
- - XML datatype of the parameterjavaType
- - The Java class of the parameterparameterMode
- - Mode of the parameter-whether IN, OUT or INOUTheaderMode
- - 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
-
getParameterTypeByName
public QName getParameterTypeByName(java.lang.String paramName)
Return the QName of the type of the parameters with the given name.- Specified by:
getParameterTypeByName
in interfaceCall
- 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.
-
setReturnType
public void setReturnType(QName type)
Sets the return type of the operation associated with this Call object.- Specified by:
setReturnType
in interfaceCall
- Parameters:
type
- QName of the return value type.
-
setReturnType
public void setReturnType(QName xmlType, java.lang.Class javaType)
Sets the return type for a specific operation.- Specified by:
setReturnType
in interfaceCall
- Parameters:
xmlType
- - QName of the data type of the return valuejavaType
- - 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, java.lang.Class javaType)
Set the return type as a header
-
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.- Specified by:
getReturnType
in interfaceCall
- Returns:
- the XMLType specified for this Call (or null).
-
setReturnQName
public void setReturnQName(QName qname)
Set the QName of the return element NOT part of JAX-RPC
-
setReturnClass
public void setReturnClass(java.lang.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.
-
removeAllParameters
public void removeAllParameters()
Clears the list of parameters.- Specified by:
removeAllParameters
in interfaceCall
- Throws:
JAXRPCException
- - if isParameterAndReturnSpecRequired returns false, then removeAllParameters MAY throw JAXRPCException...Axis allows modification to the Call object without throwing an exception.
-
getOperationName
public QName getOperationName()
Returns the operation name associated with this Call object.- Specified by:
getOperationName
in interfaceCall
- Returns:
- String Name of the operation or null if not set.
-
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.- Specified by:
setOperationName
in interfaceCall
- Parameters:
opName
- Name of the operation.
-
setOperationName
public void setOperationName(java.lang.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.
-
setOperation
public void setOperation(java.lang.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, java.lang.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 foropName
- 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 foropName
- Operation(method) that's going to be invoked
-
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)
-
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
-
getPortTypeName
public QName getPortTypeName()
Returns the fully qualified name of the port type for this Call object (if there is one).- Specified by:
getPortTypeName
in interfaceCall
- Returns:
- QName Fully qualified name of the port type
-
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.- Specified by:
setPortTypeName
in interfaceCall
- Parameters:
portType
- Fully qualified name of the portType
-
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
-
invoke
public java.lang.Object invoke(QName operationName, java.lang.Object[] params) throws java.rmi.RemoteException
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.- Specified by:
invoke
in interfaceCall
- Parameters:
operationName
- - Name of the operation to invokeparams
- - 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 java.lang.Object invoke(java.lang.Object[] params) throws java.rmi.RemoteException
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.
-
invokeOneWay
public void invokeOneWay(java.lang.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- Specified by:
invokeOneWay
in interfaceCall
- Parameters:
params
- Array of parameters to invoke the Web Service with- Throws:
JAXRPCException
- is there's an error
-
invoke
public SOAPEnvelope invoke(Message msg) throws AxisFault
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) throws AxisFault
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
-
setTransportForProtocol
public static void setTransportForProtocol(java.lang.String protocol, java.lang.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.
-
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.
-
addTransportPackage
public static void addTransportPackage(java.lang.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.
-
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.
-
getTransportForProtocol
public Transport getTransportForProtocol(java.lang.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.
-
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:
java.lang.RuntimeException
- containing the text of an AxisFault, if any AxisFault was thrown
-
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
-
getMessageContext
public MessageContext getMessageContext()
Obtain a reference to our MessageContext. Note: Not part of JAX-RPC specification.- Returns:
- the MessageContext.
-
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
-
clearHeaders
public void clearHeaders()
Clear the list of headers which we insert into each message Note: Not part of JAX-RPC specification.
-
getTypeMapping
public TypeMapping getTypeMapping()
-
registerTypeMapping
public void registerTypeMapping(java.lang.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(java.lang.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(java.lang.Class javaType, QName xmlType, java.lang.Class sfClass, java.lang.Class dfClass)
register this type matting- Parameters:
javaType
-xmlType
-sfClass
-dfClass
-
-
registerTypeMapping
public void registerTypeMapping(java.lang.Class javaType, QName xmlType, java.lang.Class sfClass, java.lang.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 handlexmlType
- XML mappingsfClass
- class of serializer factorydfClass
- class of deserializer factoryforce
-
-
invoke
public java.lang.Object invoke(java.lang.String namespace, java.lang.String method, java.lang.Object[] args) throws AxisFault
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 elementmethod
- the method nameargs
- 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 java.lang.Object invoke(java.lang.String method, java.lang.Object[] args) throws AxisFault
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 nameargs
- 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 java.lang.Object invoke(RPCElement body) throws AxisFault
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
-
setOption
public void setOption(java.lang.String name, java.lang.Object value)
Set engine option. Note: Not part of JAX-RPC specification.
-
invoke
public void invoke() throws AxisFault
Invoke this Call with its established MessageContext (perhaps because you called this.setRequestMessage()) Note: Not part of JAX-RPC specification.- Throws:
AxisFault
-
getOutputParams
public java.util.Map getOutputParams()
Get the output parameters (if any) from the last invocation. This allows named access - if you need sequential access, use getOutputValues().- Specified by:
getOutputParams
in interfaceCall
- Returns:
- a Map containing the output parameter values, indexed by QName
-
getOutputValues
public java.util.List getOutputValues()
Returns a List values for the output parameters of the last invoked operation.- Specified by:
getOutputValues
in interfaceCall
- 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.
-
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
-
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
-
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.
-
addAttachmentPart
public void addAttachmentPart(java.lang.Object attachment)
This method adds an attachment.Note: Not part of JAX-RPC specification.
- Parameters:
attachment
- theObject
to attach- Throws:
java.lang.RuntimeException
- if there is no support for attachments
-
addFault
public void addFault(QName qname, java.lang.Class cls, QName xmlType, boolean isComplex)
Add a fault for this operation.Note: Not part of JAX-RPC specificaion.
- Parameters:
qname
- qname of the faultcls
- class of the faultxmlType
- XML type of the faultisComplex
- true if xmlType is a complex type, false otherwise
-
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.
-
getOperation
public OperationDesc getOperation()
-
clearOperation
public void clearOperation()
-
-