<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_08) on Sat Apr 22 18:56:43 PDT 2006 -->
<TITLE>
Call (Axis API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.axis.client.Call class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Call (Axis API)";
}
</SCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Call.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/axis/client/AxisClientProxy.html" title="class in org.apache.axis.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Call.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.axis.client</FONT>
<BR>
Class Call</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by"><B>org.apache.axis.client.Call</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></DD>
</DL>
<HR>
<DL>
<DT>public class <B>Call</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></DL>

<P>
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.
 <pre>
 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
 </pre>
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Doug Davis (dug@us.ibm.com), Steve Loughran</DD>
</DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT">ATTACHMENT_ENCAPSULATION_FORMAT</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property for setting attachment format.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_DIME">ATTACHMENT_ENCAPSULATION_FORMAT_DIME</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property value for setting attachment format as DIME.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_MIME">ATTACHMENT_ENCAPSULATION_FORMAT_MIME</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property value for setting attachment format as MIME.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_MTOM">ATTACHMENT_ENCAPSULATION_FORMAT_MTOM</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property value for setting attachment format as DIME.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#attachmentParts">attachmentParts</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;these are our attachments</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#CHARACTER_SET_ENCODING">CHARACTER_SET_ENCODING</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the character set encoding to use for the message</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#CHECK_MUST_UNDERSTAND">CHECK_MUST_UNDERSTAND</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If this property is true, code will enforce must understand check on both
 the request and the response paths.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#CONNECTION_TIMEOUT_PROPERTY">CONNECTION_TIMEOUT_PROPERTY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timeout property: should be accompanies by an integer</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;org.apache.commons.logging.Log</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#entLog">entLog</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#FAULT_ON_NO_RESPONSE">FAULT_ON_NO_RESPONSE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If this property is true, the code will throw a fault if there is no
 response message from the server.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#JAXRPC_PORTTYPE_NAME">JAXRPC_PORTTYPE_NAME</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use WSDL_PORT_NAME instead.</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#JAXRPC_SERVICE">JAXRPC_SERVICE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use WSDL_SERVICE instead.</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;org.apache.commons.logging.Log</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#log">log</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#ONE_WAY">ONE_WAY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal property to indicate a one way call.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#SEND_TYPE_ATTR">SEND_TYPE_ATTR</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#STREAMING_PROPERTY">STREAMING_PROPERTY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Streaming property: should be accompanied by an boolean
 (i.e.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#TRANSPORT_NAME">TRANSPORT_NAME</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is the name of a property to set the transport of the message</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#TRANSPORT_PROPERTY">TRANSPORT_PROPERTY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is not the name of a property that can be set with
 setProperty, despite its name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#WSDL_PORT_NAME">WSDL_PORT_NAME</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this is a property set in the message context when the invocation
 process begins, for the benefit of handlers</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#WSDL_SERVICE">WSDL_SERVICE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this is a property set in the message context when the invocation
 process begins, for the benefit of handlers</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_javax.xml.rpc.Call"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Fields inherited from interface javax.xml.rpc.<A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#ENCODINGSTYLE_URI_PROPERTY">ENCODINGSTYLE_URI_PROPERTY</A>, <A HREF="../../../../javax/xml/rpc/Call.html#OPERATION_STYLE_PROPERTY">OPERATION_STYLE_PROPERTY</A>, <A HREF="../../../../javax/xml/rpc/Call.html#PASSWORD_PROPERTY">PASSWORD_PROPERTY</A>, <A HREF="../../../../javax/xml/rpc/Call.html#SESSION_MAINTAIN_PROPERTY">SESSION_MAINTAIN_PROPERTY</A>, <A HREF="../../../../javax/xml/rpc/Call.html#SOAPACTION_URI_PROPERTY">SOAPACTION_URI_PROPERTY</A>, <A HREF="../../../../javax/xml/rpc/Call.html#SOAPACTION_USE_PROPERTY">SOAPACTION_USE_PROPERTY</A>, <A HREF="../../../../javax/xml/rpc/Call.html#USERNAME_PROPERTY">USERNAME_PROPERTY</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#Call(org.apache.axis.client.Service)">Call</A></B>(<A HREF="../../../../org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>&nbsp;service)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default constructor - not much else to say.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#Call(java.lang.String)">Call</A></B>(java.lang.String&nbsp;url)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a call from a URL string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#Call(java.net.URL)">Call</A></B>(java.net.URL&nbsp;url)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a call from a URL.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addAttachmentPart(java.lang.Object)">addAttachmentPart</A></B>(java.lang.Object&nbsp;attachment)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method adds an attachment.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addFault(javax.xml.namespace.QName, java.lang.Class, javax.xml.namespace.QName, boolean)">addFault</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
         java.lang.Class&nbsp;cls,
         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
         boolean&nbsp;isComplex)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a fault for this operation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addHeader(org.apache.axis.message.SOAPHeaderElement)">addHeader</A></B>(<A HREF="../../../../org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>&nbsp;header)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a header which should be inserted into each outgoing message
 we generate.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)">addParameter</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
             <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
             java.lang.Class&nbsp;javaType,
             <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)">addParameter</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
             <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
             <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)">addParameter</A></B>(java.lang.String&nbsp;paramName,
             <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
             java.lang.Class&nbsp;javaType,
             <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a parameter type and mode for a specific operation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)">addParameter</A></B>(java.lang.String&nbsp;paramName,
             <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
             <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addParameterAsHeader(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode, javax.xml.rpc.ParameterMode)">addParameterAsHeader</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
                     <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                     java.lang.Class&nbsp;javaType,
                     <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode,
                     <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;headerMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a parameter type as a soap:header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addParameterAsHeader(javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode, javax.xml.rpc.ParameterMode)">addParameterAsHeader</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
                     <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                     <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode,
                     <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;headerMode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a parameter type as a soap:header.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#addTransportPackage(java.lang.String)">addTransportPackage</A></B>(java.lang.String&nbsp;packageName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a package to the system protocol handler search path.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#clearHeaders()">clearHeaders</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear the list of headers which we insert into each message

 Note: Not part of JAX-RPC specification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#clearOperation()">clearOperation</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getEncodingStyle()">getEncodingStyle</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the encoding style as a URI that should be used for the SOAP
 message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getMaintainSession()">getMaintainSession</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the value of maintainSession flag.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getMessageContext()">getMessageContext</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obtain a reference to our MessageContext.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getOperation()">getOperation</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getOperationName()">getOperationName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the operation name associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getOperationStyle()">getOperationStyle</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the operation style.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getOperationUse()">getOperationUse</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the operation use.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Map</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getOutputParams()">getOutputParams</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the output parameters (if any) from the last invocation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getOutputValues()">getOutputValues</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a List values for the output parameters of the last
 invoked operation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getParameterTypeByName(java.lang.String)">getParameterTypeByName</A></B>(java.lang.String&nbsp;paramName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the QName of the type of the parameters with the given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getParameterTypeByQName(javax.xml.namespace.QName)">getParameterTypeByQName</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramQName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the QName of the type of the parameters with the given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getPassword()">getPassword</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the password.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getPortName()">getPortName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the fully qualified name of the port for this Call object
 (if there is one).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getPortTypeName()">getPortTypeName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the fully qualified name of the port type for this Call object
 (if there is one).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getProperty(java.lang.String)">getProperty</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the value associated with the named property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Iterator</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getPropertyNames()">getPropertyNames</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the names of configurable properties supported by
 this <code>Call</code> object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getResponseMessage()">getResponseMessage</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Directly get the response message in our MessageContext.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getReturnType()">getReturnType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the QName of the type of the return value of this Call - or null
 if not set.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getService()">getService</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Service object associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getSOAPActionURI()">getSOAPActionURI</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the soapAction URI.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getStreaming()">getStreaming</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getTargetEndpointAddress()">getTargetEndpointAddress</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the URL of the target Web Service.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Integer</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getTimeout()">getTimeout</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getTransportForProtocol(java.lang.String)">getTransportForProtocol</A></B>(java.lang.String&nbsp;protocol)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Transport registered for the given protocol.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getTypeMapping()">getTypeMapping</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#getUsername()">getUsername</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the user name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#initialize()">initialize</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set up the default transport URL mappings.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke()">invoke</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke this Call with its established MessageContext
 (perhaps because you called this.setRequestMessage())

 Note: Not part of JAX-RPC specification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(org.apache.axis.Message)">invoke</A></B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;msg)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the service with a custom Message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(java.lang.Object[])">invoke</A></B>(java.lang.Object[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes the operation associated with this Call object using the
 passed in parameters as the arguments to the method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(javax.xml.namespace.QName, java.lang.Object[])">invoke</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;operationName,
       java.lang.Object[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes a specific operation using a synchronous request-response interaction mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(org.apache.axis.message.RPCElement)">invoke</A></B>(<A HREF="../../../../org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>&nbsp;body)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke an RPC service with a pre-constructed RPCElement.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(org.apache.axis.message.SOAPEnvelope)">invoke</A></B>(<A HREF="../../../../org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>&nbsp;env)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke the service with a custom SOAPEnvelope.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(java.lang.String, java.lang.Object[])">invoke</A></B>(java.lang.String&nbsp;method,
       java.lang.Object[]&nbsp;args)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method to invoke a method with a default (empty)
 namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invoke(java.lang.String, java.lang.String, java.lang.Object[])">invoke</A></B>(java.lang.String&nbsp;namespace,
       java.lang.String&nbsp;method,
       java.lang.Object[]&nbsp;args)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoke an RPC service with a method name and arguments.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#invokeOneWay(java.lang.Object[])">invokeOneWay</A></B>(java.lang.Object[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes the operation associated with this Call object using the passed
 in parameters as the arguments to the method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#isParameterAndReturnSpecRequired(javax.xml.namespace.QName)">isParameterAndReturnSpecRequired</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;operationName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#isPropertySupported(java.lang.String)">isPropertySupported</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, java.lang.Class, java.lang.Class)">registerTypeMapping</A></B>(java.lang.Class&nbsp;javaType,
                    <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                    java.lang.Class&nbsp;sfClass,
                    java.lang.Class&nbsp;dfClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register this type matting</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, java.lang.Class, java.lang.Class, boolean)">registerTypeMapping</A></B>(java.lang.Class&nbsp;javaType,
                    <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                    java.lang.Class&nbsp;sfClass,
                    java.lang.Class&nbsp;dfClass,
                    boolean&nbsp;force)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register a type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.SerializerFactory, org.apache.axis.encoding.DeserializerFactory)">registerTypeMapping</A></B>(java.lang.Class&nbsp;javaType,
                    <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                    <A HREF="../../../../org/apache/axis/encoding/SerializerFactory.html" title="interface in org.apache.axis.encoding">SerializerFactory</A>&nbsp;sf,
                    <A HREF="../../../../org/apache/axis/encoding/DeserializerFactory.html" title="interface in org.apache.axis.encoding">DeserializerFactory</A>&nbsp;df)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register type mapping information for serialization/deserialization

 Note: Not part of JAX-RPC specification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.SerializerFactory, org.apache.axis.encoding.DeserializerFactory, boolean)">registerTypeMapping</A></B>(java.lang.Class&nbsp;javaType,
                    <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                    <A HREF="../../../../org/apache/axis/encoding/SerializerFactory.html" title="interface in org.apache.axis.encoding">SerializerFactory</A>&nbsp;sf,
                    <A HREF="../../../../org/apache/axis/encoding/DeserializerFactory.html" title="interface in org.apache.axis.encoding">DeserializerFactory</A>&nbsp;df,
                    boolean&nbsp;force)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register type mapping information for serialization/deserialization

 Note: Not part of JAX-RPC specification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#removeAllParameters()">removeAllParameters</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the list of parameters.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#removeProperty(java.lang.String)">removeProperty</A></B>(java.lang.String&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes (if set) the named property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setClientHandlers(org.apache.axis.Handler, org.apache.axis.Handler)">setClientHandlers</A></B>(<A HREF="../../../../org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>&nbsp;reqHandler,
                  <A HREF="../../../../org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>&nbsp;respHandler)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the client-side request and response Handlers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setEncodingStyle(java.lang.String)">setEncodingStyle</A></B>(java.lang.String&nbsp;namespaceURI)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the encoding style to the URL passed in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setMaintainSession(boolean)">setMaintainSession</A></B>(boolean&nbsp;yesno)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine whether we'd like to track sessions or not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperation(org.apache.axis.description.OperationDesc)">setOperation</A></B>(<A HREF="../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;operation)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperation(javax.xml.namespace.QName, javax.xml.namespace.QName)">setOperation</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portName,
             <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;opName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prefill as much info from the WSDL as it can.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperation(javax.xml.namespace.QName, java.lang.String)">setOperation</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portName,
             java.lang.String&nbsp;opName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prefill as much info from the WSDL as it can.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperation(java.lang.String)">setOperation</A></B>(java.lang.String&nbsp;opName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prefill as much info from the WSDL as it can.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperationName(javax.xml.namespace.QName)">setOperationName</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;opName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the operation name associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperationName(java.lang.String)">setOperationName</A></B>(java.lang.String&nbsp;opName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This is a convenience method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperationStyle(java.lang.String)">setOperationStyle</A></B>(java.lang.String&nbsp;operationStyle)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the operation style: "document", "rpc"</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperationStyle(org.apache.axis.constants.Style)">setOperationStyle</A></B>(<A HREF="../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>&nbsp;operationStyle)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the operation style</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperationUse(java.lang.String)">setOperationUse</A></B>(java.lang.String&nbsp;operationUse)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the operation use: "literal", "encoded"</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOperationUse(org.apache.axis.constants.Use)">setOperationUse</A></B>(<A HREF="../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>&nbsp;operationUse)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the operation use</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setOption(java.lang.String, java.lang.Object)">setOption</A></B>(java.lang.String&nbsp;name,
          java.lang.Object&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set engine option.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setPassword(java.lang.String)">setPassword</A></B>(java.lang.String&nbsp;password)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the password.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setPortName(javax.xml.namespace.QName)">setPortName</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the port name of this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setPortTypeName(javax.xml.namespace.QName)">setPortTypeName</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the port type name of this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)">setProperty</A></B>(java.lang.String&nbsp;name,
            java.lang.Object&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows you to set a named property to the passed in value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setRequestMessage(org.apache.axis.Message)">setRequestMessage</A></B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;msg)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Directly set the request message in our MessageContext.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setReturnClass(java.lang.Class)">setReturnClass</A></B>(java.lang.Class&nbsp;cls)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the desired return Java Class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setReturnQName(javax.xml.namespace.QName)">setReturnQName</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the QName of the return element

 NOT part of JAX-RPC</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setReturnType(javax.xml.namespace.QName)">setReturnType</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the return type of the operation associated with this Call object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setReturnType(javax.xml.namespace.QName, java.lang.Class)">setReturnType</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
              java.lang.Class&nbsp;javaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the return type for a specific operation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setReturnTypeAsHeader(javax.xml.namespace.QName)">setReturnTypeAsHeader</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the return type as a header</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setReturnTypeAsHeader(javax.xml.namespace.QName, java.lang.Class)">setReturnTypeAsHeader</A></B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                      java.lang.Class&nbsp;javaType)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the return type as a header</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setSOAPActionURI(java.lang.String)">setSOAPActionURI</A></B>(java.lang.String&nbsp;SOAPActionURI)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the soapAction URI.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setSOAPService(org.apache.axis.handlers.soap.SOAPService)">setSOAPService</A></B>(<A HREF="../../../../org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>&nbsp;service)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the service so that it defers missing property gets to the
 Call.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setSOAPVersion(org.apache.axis.soap.SOAPConstants)">setSOAPVersion</A></B>(<A HREF="../../../../org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>&nbsp;soapConstants)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allow the user to set the default SOAP version.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setStreaming(boolean)">setStreaming</A></B>(boolean&nbsp;useStreaming)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setTargetEndpointAddress(java.lang.String)">setTargetEndpointAddress</A></B>(java.lang.String&nbsp;address)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the endpoint address of the target service port.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setTargetEndpointAddress(java.net.URL)">setTargetEndpointAddress</A></B>(java.net.URL&nbsp;address)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the URL of the target Web Service.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setTimeout(java.lang.Integer)">setTimeout</A></B>(java.lang.Integer&nbsp;timeout)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setTransport(org.apache.axis.client.Transport)">setTransport</A></B>(<A HREF="../../../../org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>&nbsp;trans)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the Transport

 Note: Not part of JAX-RPC specification.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setTransportForProtocol(java.lang.String, java.lang.Class)">setTransportForProtocol</A></B>(java.lang.String&nbsp;protocol,
                        java.lang.Class&nbsp;transportClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a Transport that should be used for URLs of the specified
 protocol.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setUsername(java.lang.String)">setUsername</A></B>(java.lang.String&nbsp;username)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the username.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#setUseSOAPAction(boolean)">setUseSOAPAction</A></B>(boolean&nbsp;useSOAPAction)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flag to indicate if soapAction should be used.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/axis/client/Call.html#useSOAPAction()">useSOAPAction</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Discover if soapAction is being used.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="log"><!-- --></A><H3>
log</H3>
<PRE>
protected static org.apache.commons.logging.Log <B>log</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="entLog"><!-- --></A><H3>
entLog</H3>
<PRE>
protected static org.apache.commons.logging.Log <B>entLog</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="SEND_TYPE_ATTR"><!-- --></A><H3>
SEND_TYPE_ATTR</H3>
<PRE>
public static final java.lang.String <B>SEND_TYPE_ATTR</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.SEND_TYPE_ATTR">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="TRANSPORT_NAME"><!-- --></A><H3>
TRANSPORT_NAME</H3>
<PRE>
public static final java.lang.String <B>TRANSPORT_NAME</B></PRE>
<DL>
<DD>This is the name of a property to set the transport of the message
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(java.lang.String, java.lang.Object)</CODE></A>, 
<A HREF="../../../../constant-values.html#org.apache.axis.client.Call.TRANSPORT_NAME">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="CHARACTER_SET_ENCODING"><!-- --></A><H3>
CHARACTER_SET_ENCODING</H3>
<PRE>
public static final java.lang.String <B>CHARACTER_SET_ENCODING</B></PRE>
<DL>
<DD>This is the character set encoding to use for the message
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(java.lang.String, java.lang.Object)</CODE></A>, 
<A HREF="../../../../constant-values.html#org.apache.axis.client.Call.CHARACTER_SET_ENCODING">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="TRANSPORT_PROPERTY"><!-- --></A><H3>
TRANSPORT_PROPERTY</H3>
<PRE>
public static final java.lang.String <B>TRANSPORT_PROPERTY</B></PRE>
<DL>
<DD>This is not the name of a property that can be set with
 setProperty, despite its name.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.TRANSPORT_PROPERTY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="WSDL_SERVICE"><!-- --></A><H3>
WSDL_SERVICE</H3>
<PRE>
public static final java.lang.String <B>WSDL_SERVICE</B></PRE>
<DL>
<DD>this is a property set in the message context when the invocation
 process begins, for the benefit of handlers
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.WSDL_SERVICE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="WSDL_PORT_NAME"><!-- --></A><H3>
WSDL_PORT_NAME</H3>
<PRE>
public static final java.lang.String <B>WSDL_PORT_NAME</B></PRE>
<DL>
<DD>this is a property set in the message context when the invocation
 process begins, for the benefit of handlers
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.WSDL_PORT_NAME">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="JAXRPC_SERVICE"><!-- --></A><H3>
JAXRPC_SERVICE</H3>
<PRE>
public static final java.lang.String <B>JAXRPC_SERVICE</B></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use WSDL_SERVICE instead.</I>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.JAXRPC_SERVICE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="JAXRPC_PORTTYPE_NAME"><!-- --></A><H3>
JAXRPC_PORTTYPE_NAME</H3>
<PRE>
public static final java.lang.String <B>JAXRPC_PORTTYPE_NAME</B></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use WSDL_PORT_NAME instead.</I>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.JAXRPC_PORTTYPE_NAME">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="FAULT_ON_NO_RESPONSE"><!-- --></A><H3>
FAULT_ON_NO_RESPONSE</H3>
<PRE>
public static final java.lang.String <B>FAULT_ON_NO_RESPONSE</B></PRE>
<DL>
<DD>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.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.FAULT_ON_NO_RESPONSE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="CHECK_MUST_UNDERSTAND"><!-- --></A><H3>
CHECK_MUST_UNDERSTAND</H3>
<PRE>
public static final java.lang.String <B>CHECK_MUST_UNDERSTAND</B></PRE>
<DL>
<DD>If this property is true, code will enforce must understand check on both
 the request and the response paths.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.CHECK_MUST_UNDERSTAND">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ATTACHMENT_ENCAPSULATION_FORMAT"><!-- --></A><H3>
ATTACHMENT_ENCAPSULATION_FORMAT</H3>
<PRE>
public static final java.lang.String <B>ATTACHMENT_ENCAPSULATION_FORMAT</B></PRE>
<DL>
<DD>Property for setting attachment format.
 Can be set to either DIME or MIME (default)
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(java.lang.String, java.lang.Object)</CODE></A>, 
<A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_DIME"><CODE>ATTACHMENT_ENCAPSULATION_FORMAT_DIME</CODE></A>, 
<A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_MIME"><CODE>ATTACHMENT_ENCAPSULATION_FORMAT_MIME</CODE></A>, 
<A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT_MTOM"><CODE>ATTACHMENT_ENCAPSULATION_FORMAT_MTOM</CODE></A>, 
<A HREF="../../../../constant-values.html#org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ATTACHMENT_ENCAPSULATION_FORMAT_MIME"><!-- --></A><H3>
ATTACHMENT_ENCAPSULATION_FORMAT_MIME</H3>
<PRE>
public static final java.lang.String <B>ATTACHMENT_ENCAPSULATION_FORMAT_MIME</B></PRE>
<DL>
<DD>Property value for setting attachment format as MIME.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT_MIME">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ATTACHMENT_ENCAPSULATION_FORMAT_DIME"><!-- --></A><H3>
ATTACHMENT_ENCAPSULATION_FORMAT_DIME</H3>
<PRE>
public static final java.lang.String <B>ATTACHMENT_ENCAPSULATION_FORMAT_DIME</B></PRE>
<DL>
<DD>Property value for setting attachment format as DIME.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT_DIME">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ATTACHMENT_ENCAPSULATION_FORMAT_MTOM"><!-- --></A><H3>
ATTACHMENT_ENCAPSULATION_FORMAT_MTOM</H3>
<PRE>
public static final java.lang.String <B>ATTACHMENT_ENCAPSULATION_FORMAT_MTOM</B></PRE>
<DL>
<DD>Property value for setting attachment format as DIME.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.ATTACHMENT_ENCAPSULATION_FORMAT_MTOM">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="CONNECTION_TIMEOUT_PROPERTY"><!-- --></A><H3>
CONNECTION_TIMEOUT_PROPERTY</H3>
<PRE>
public static final java.lang.String <B>CONNECTION_TIMEOUT_PROPERTY</B></PRE>
<DL>
<DD>Timeout property: should be accompanies by an integer
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(java.lang.String, java.lang.Object)</CODE></A>, 
<A HREF="../../../../constant-values.html#org.apache.axis.client.Call.CONNECTION_TIMEOUT_PROPERTY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="STREAMING_PROPERTY"><!-- --></A><H3>
STREAMING_PROPERTY</H3>
<PRE>
public static final java.lang.String <B>STREAMING_PROPERTY</B></PRE>
<DL>
<DD>Streaming property: should be accompanied by an boolean
 (i.e. NO high-fidelity recording, deserialize on the fly)
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/axis/client/Call.html#setProperty(java.lang.String, java.lang.Object)"><CODE>setProperty(java.lang.String, java.lang.Object)</CODE></A>, 
<A HREF="../../../../constant-values.html#org.apache.axis.client.Call.STREAMING_PROPERTY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ONE_WAY"><!-- --></A><H3>
ONE_WAY</H3>
<PRE>
protected static final java.lang.String <B>ONE_WAY</B></PRE>
<DL>
<DD>Internal property to indicate a one way call.
 That will disable processing of response handlers.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.axis.client.Call.ONE_WAY">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="attachmentParts"><!-- --></A><H3>
attachmentParts</H3>
<PRE>
protected java.util.Vector <B>attachmentParts</B></PRE>
<DL>
<DD>these are our attachments
<P>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="Call(org.apache.axis.client.Service)"><!-- --></A><H3>
Call</H3>
<PRE>
public <B>Call</B>(<A HREF="../../../../org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A>&nbsp;service)</PRE>
<DL>
<DD>Default constructor - not much else to say.
<P>
<DT><B>Parameters:</B><DD><CODE>service</CODE> - the <code>Service</code> this <code>Call</code> will
              work with</DL>
<HR>

<A NAME="Call(java.lang.String)"><!-- --></A><H3>
Call</H3>
<PRE>
public <B>Call</B>(java.lang.String&nbsp;url)
     throws java.net.MalformedURLException</PRE>
<DL>
<DD>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.
<P>
<DT><B>Parameters:</B><DD><CODE>url</CODE> - the target endpoint URL
<DT><B>Throws:</B>
<DD><CODE>java.net.MalformedURLException</CODE></DL>
<HR>

<A NAME="Call(java.net.URL)"><!-- --></A><H3>
Call</H3>
<PRE>
public <B>Call</B>(java.net.URL&nbsp;url)</PRE>
<DL>
<DD>Build a call from a URL.
<P>
<DT><B>Parameters:</B><DD><CODE>url</CODE> - the target endpoint URL</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="setProperty(java.lang.String, java.lang.Object)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public void <B>setProperty</B>(java.lang.String&nbsp;name,
                        java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#setProperty(java.lang.String, java.lang.Object)">setProperty</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of the property<DD><CODE>value</CODE> - Value of the property<DT><B>See Also:</B><DD><A HREF="../../../../javax/xml/rpc/Stub.html" title="interface in javax.xml.rpc"><CODE>Stub</CODE></A>, 
<A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc"><CODE>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</CODE></A>, 
<A HREF="../../../../org/apache/axis/client/Call.html#ATTACHMENT_ENCAPSULATION_FORMAT"><CODE>ATTACHMENT_ENCAPSULATION_FORMAT</CODE></A>, 
<A HREF="../../../../org/apache/axis/client/Call.html#TRANSPORT_NAME"><CODE>TRANSPORT_NAME</CODE></A>, 
<A HREF="../../../../org/apache/axis/client/Call.html#CONNECTION_TIMEOUT_PROPERTY"><CODE>CONNECTION_TIMEOUT_PROPERTY</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getProperty(java.lang.String)"><!-- --></A><H3>
getProperty</H3>
<PRE>
public java.lang.Object <B>getProperty</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Returns the value associated with the named property.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getProperty(java.lang.String)">getProperty</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the property
<DT><B>Returns:</B><DD>Object value of the property or null if the property is not set
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - if the requested property is not a supported property</DL>
</DD>
</DL>
<HR>

<A NAME="removeProperty(java.lang.String)"><!-- --></A><H3>
removeProperty</H3>
<PRE>
public void <B>removeProperty</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD>Removes (if set) the named property.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#removeProperty(java.lang.String)">removeProperty</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - name of the property to remove</DL>
</DD>
</DL>
<HR>

<A NAME="getPropertyNames()"><!-- --></A><H3>
getPropertyNames</H3>
<PRE>
public java.util.Iterator <B>getPropertyNames</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></B></DD>
<DD>Gets the names of configurable properties supported by
 this <code>Call</code> object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getPropertyNames()">getPropertyNames</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>Iterator for the property names</DL>
</DD>
</DL>
<HR>

<A NAME="isPropertySupported(java.lang.String)"><!-- --></A><H3>
isPropertySupported</H3>
<PRE>
public boolean <B>isPropertySupported</B>(java.lang.String&nbsp;name)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setUsername(java.lang.String)"><!-- --></A><H3>
setUsername</H3>
<PRE>
public void <B>setUsername</B>(java.lang.String&nbsp;username)</PRE>
<DL>
<DD>Set the username.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>username</CODE> - the new user name</DL>
</DD>
</DL>
<HR>

<A NAME="getUsername()"><!-- --></A><H3>
getUsername</H3>
<PRE>
public java.lang.String <B>getUsername</B>()</PRE>
<DL>
<DD>Get the user name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the user name</DL>
</DD>
</DL>
<HR>

<A NAME="setPassword(java.lang.String)"><!-- --></A><H3>
setPassword</H3>
<PRE>
public void <B>setPassword</B>(java.lang.String&nbsp;password)</PRE>
<DL>
<DD>Set the password.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>password</CODE> - plain-text copy of the password</DL>
</DD>
</DL>
<HR>

<A NAME="getPassword()"><!-- --></A><H3>
getPassword</H3>
<PRE>
public java.lang.String <B>getPassword</B>()</PRE>
<DL>
<DD>Get the password.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a plain-text copy of the password</DL>
</DD>
</DL>
<HR>

<A NAME="setMaintainSession(boolean)"><!-- --></A><H3>
setMaintainSession</H3>
<PRE>
public void <B>setMaintainSession</B>(boolean&nbsp;yesno)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>yesno</CODE> - true if session state is desired, false if not.</DL>
</DD>
</DL>
<HR>

<A NAME="getMaintainSession()"><!-- --></A><H3>
getMaintainSession</H3>
<PRE>
public boolean <B>getMaintainSession</B>()</PRE>
<DL>
<DD>Get the value of maintainSession flag.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if session is maintained, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="setOperationStyle(java.lang.String)"><!-- --></A><H3>
setOperationStyle</H3>
<PRE>
public void <B>setOperationStyle</B>(java.lang.String&nbsp;operationStyle)</PRE>
<DL>
<DD>Set the operation style: "document", "rpc"
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operationStyle</CODE> - string designating style</DL>
</DD>
</DL>
<HR>

<A NAME="setOperationStyle(org.apache.axis.constants.Style)"><!-- --></A><H3>
setOperationStyle</H3>
<PRE>
public void <B>setOperationStyle</B>(<A HREF="../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A>&nbsp;operationStyle)</PRE>
<DL>
<DD>Set the operation style
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operationStyle</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="getOperationStyle()"><!-- --></A><H3>
getOperationStyle</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/constants/Style.html" title="class in org.apache.axis.constants">Style</A> <B>getOperationStyle</B>()</PRE>
<DL>
<DD>Get the operation style.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the <code>Style</code> of the operation</DL>
</DD>
</DL>
<HR>

<A NAME="setOperationUse(java.lang.String)"><!-- --></A><H3>
setOperationUse</H3>
<PRE>
public void <B>setOperationUse</B>(java.lang.String&nbsp;operationUse)</PRE>
<DL>
<DD>Set the operation use: "literal", "encoded"
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operationUse</CODE> - string designating use</DL>
</DD>
</DL>
<HR>

<A NAME="setOperationUse(org.apache.axis.constants.Use)"><!-- --></A><H3>
setOperationUse</H3>
<PRE>
public void <B>setOperationUse</B>(<A HREF="../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A>&nbsp;operationUse)</PRE>
<DL>
<DD>Set the operation use
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operationUse</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="getOperationUse()"><!-- --></A><H3>
getOperationUse</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/constants/Use.html" title="class in org.apache.axis.constants">Use</A> <B>getOperationUse</B>()</PRE>
<DL>
<DD>Get the operation use.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the <code>Use</code> of the operation</DL>
</DD>
</DL>
<HR>

<A NAME="setUseSOAPAction(boolean)"><!-- --></A><H3>
setUseSOAPAction</H3>
<PRE>
public void <B>setUseSOAPAction</B>(boolean&nbsp;useSOAPAction)</PRE>
<DL>
<DD>Flag to indicate if soapAction should be used.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>useSOAPAction</CODE> - true if the soapAction header is to be used to
              help find the method to invoke, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="useSOAPAction()"><!-- --></A><H3>
useSOAPAction</H3>
<PRE>
public boolean <B>useSOAPAction</B>()</PRE>
<DL>
<DD>Discover if soapAction is being used.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if it is, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="setSOAPActionURI(java.lang.String)"><!-- --></A><H3>
setSOAPActionURI</H3>
<PRE>
public void <B>setSOAPActionURI</B>(java.lang.String&nbsp;SOAPActionURI)</PRE>
<DL>
<DD>Set the soapAction URI.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>SOAPActionURI</CODE> - the new SOAP action URI</DL>
</DD>
</DL>
<HR>

<A NAME="getSOAPActionURI()"><!-- --></A><H3>
getSOAPActionURI</H3>
<PRE>
public java.lang.String <B>getSOAPActionURI</B>()</PRE>
<DL>
<DD>Get the soapAction URI.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the curretn SOAP action URI</DL>
</DD>
</DL>
<HR>

<A NAME="setEncodingStyle(java.lang.String)"><!-- --></A><H3>
setEncodingStyle</H3>
<PRE>
public void <B>setEncodingStyle</B>(java.lang.String&nbsp;namespaceURI)</PRE>
<DL>
<DD>Sets the encoding style to the URL passed in.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - URI of the encoding to use.</DL>
</DD>
</DL>
<HR>

<A NAME="getEncodingStyle()"><!-- --></A><H3>
getEncodingStyle</H3>
<PRE>
public java.lang.String <B>getEncodingStyle</B>()</PRE>
<DL>
<DD>Returns the encoding style as a URI that should be used for the SOAP
 message.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>String URI of the encoding style to use</DL>
</DD>
</DL>
<HR>

<A NAME="setTargetEndpointAddress(java.lang.String)"><!-- --></A><H3>
setTargetEndpointAddress</H3>
<PRE>
public void <B>setTargetEndpointAddress</B>(java.lang.String&nbsp;address)</PRE>
<DL>
<DD>Sets the endpoint address of the target service port. This address must
 correspond to the transport specified in the binding for this Call
 instance.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#setTargetEndpointAddress(java.lang.String)">setTargetEndpointAddress</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - - Endpoint address of the target service port; specified
                  as URI</DL>
</DD>
</DL>
<HR>

<A NAME="setTargetEndpointAddress(java.net.URL)"><!-- --></A><H3>
setTargetEndpointAddress</H3>
<PRE>
public void <B>setTargetEndpointAddress</B>(java.net.URL&nbsp;address)</PRE>
<DL>
<DD>Sets the URL of the target Web Service.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - URL of the target Web Service</DL>
</DD>
</DL>
<HR>

<A NAME="getTargetEndpointAddress()"><!-- --></A><H3>
getTargetEndpointAddress</H3>
<PRE>
public java.lang.String <B>getTargetEndpointAddress</B>()</PRE>
<DL>
<DD>Returns the URL of the target Web Service.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getTargetEndpointAddress()">getTargetEndpointAddress</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>URL URL of the target Web Service</DL>
</DD>
</DL>
<HR>

<A NAME="getTimeout()"><!-- --></A><H3>
getTimeout</H3>
<PRE>
public java.lang.Integer <B>getTimeout</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setTimeout(java.lang.Integer)"><!-- --></A><H3>
setTimeout</H3>
<PRE>
public void <B>setTimeout</B>(java.lang.Integer&nbsp;timeout)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getStreaming()"><!-- --></A><H3>
getStreaming</H3>
<PRE>
public boolean <B>getStreaming</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setStreaming(boolean)"><!-- --></A><H3>
setStreaming</H3>
<PRE>
public void <B>setStreaming</B>(boolean&nbsp;useStreaming)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isParameterAndReturnSpecRequired(javax.xml.namespace.QName)"><!-- --></A><H3>
isParameterAndReturnSpecRequired</H3>
<PRE>
public boolean <B>isParameterAndReturnSpecRequired</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;operationName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#isParameterAndReturnSpecRequired(javax.xml.namespace.QName)">isParameterAndReturnSpecRequired</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operationName</CODE> - Qualified name of the operation
<DT><B>Returns:</B><DD>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.</DL>
</DD>
</DL>
<HR>

<A NAME="addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)"><!-- --></A><H3>
addParameter</H3>
<PRE>
public void <B>addParameter</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
                         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                         <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</PRE>
<DL>
<DD>Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - Name that will be used for the parameter in the XML<DD><CODE>xmlType</CODE> - XMLType of the parameter<DD><CODE>parameterMode</CODE> - one of IN, OUT or INOUT</DL>
</DD>
</DL>
<HR>

<A NAME="addParameter(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)"><!-- --></A><H3>
addParameter</H3>
<PRE>
public void <B>addParameter</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
                         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                         java.lang.Class&nbsp;javaType,
                         <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</PRE>
<DL>
<DD>Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.


 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - Name that will be used for the parameter in the XML<DD><CODE>xmlType</CODE> - XMLType of the parameter<DD><CODE>javaType</CODE> - The Java class of the parameter<DD><CODE>parameterMode</CODE> - one of IN, OUT or INOUT</DL>
</DD>
</DL>
<HR>

<A NAME="addParameter(java.lang.String, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)"><!-- --></A><H3>
addParameter</H3>
<PRE>
public void <B>addParameter</B>(java.lang.String&nbsp;paramName,
                         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                         <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</PRE>
<DL>
<DD>Adds the specified parameter to the list of parameters for the
 operation associated with this Call object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode)">addParameter</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - Name that will be used for the parameter in the XML<DD><CODE>xmlType</CODE> - XMLType of the parameter<DD><CODE>parameterMode</CODE> - one of IN, OUT or INOUT</DL>
</DD>
</DL>
<HR>

<A NAME="addParameter(java.lang.String, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)"><!-- --></A><H3>
addParameter</H3>
<PRE>
public void <B>addParameter</B>(java.lang.String&nbsp;paramName,
                         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                         java.lang.Class&nbsp;javaType,
                         <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#addParameter(java.lang.String, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode)">addParameter</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - - Name of the parameter<DD><CODE>xmlType</CODE> - - XML datatype of the parameter<DD><CODE>javaType</CODE> - - The Java class of the parameter<DD><CODE>parameterMode</CODE> - - Mode of the parameter-whether IN, OUT or INOUT
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - - if isParameterAndReturnSpecRequired returns
                              false, then addParameter MAY throw
                              JAXRPCException....actually Axis allows
                              modification in such cases</DL>
</DD>
</DL>
<HR>

<A NAME="addParameterAsHeader(javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.rpc.ParameterMode, javax.xml.rpc.ParameterMode)"><!-- --></A><H3>
addParameterAsHeader</H3>
<PRE>
public void <B>addParameterAsHeader</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
                                 <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                 <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode,
                                 <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;headerMode)</PRE>
<DL>
<DD>Adds a parameter type as a soap:header.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - - Name of the parameter<DD><CODE>xmlType</CODE> - - XML datatype of the parameter<DD><CODE>parameterMode</CODE> - - Mode of the parameter-whether IN, OUT or INOUT<DD><CODE>headerMode</CODE> - - Mode of the header. Even if this is an INOUT
                      parameter, it need not be in the header in both
                      directions.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - - if isParameterAndReturnSpecRequired returns
                         false, then addParameter MAY throw
                         JAXRPCException....actually Axis allows
                         modification in such cases</DL>
</DD>
</DL>
<HR>

<A NAME="addParameterAsHeader(javax.xml.namespace.QName, javax.xml.namespace.QName, java.lang.Class, javax.xml.rpc.ParameterMode, javax.xml.rpc.ParameterMode)"><!-- --></A><H3>
addParameterAsHeader</H3>
<PRE>
public void <B>addParameterAsHeader</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramName,
                                 <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                 java.lang.Class&nbsp;javaType,
                                 <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;parameterMode,
                                 <A HREF="../../../../javax/xml/rpc/ParameterMode.html" title="class in javax.xml.rpc">ParameterMode</A>&nbsp;headerMode)</PRE>
<DL>
<DD>Adds a parameter type as a soap:header.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - - Name of the parameter<DD><CODE>xmlType</CODE> - - XML datatype of the parameter<DD><CODE>javaType</CODE> - - The Java class of the parameter<DD><CODE>parameterMode</CODE> - - Mode of the parameter-whether IN, OUT or INOUT<DD><CODE>headerMode</CODE> - - Mode of the header.  Even if this is an INOUT
                     parameter, it need not be in the header in both
                     directions.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - - if isParameterAndReturnSpecRequired returns
                              false, then addParameter MAY throw
                              JAXRPCException....actually Axis allows
                              modification in such cases</DL>
</DD>
</DL>
<HR>

<A NAME="getParameterTypeByName(java.lang.String)"><!-- --></A><H3>
getParameterTypeByName</H3>
<PRE>
public <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getParameterTypeByName</B>(java.lang.String&nbsp;paramName)</PRE>
<DL>
<DD>Return the QName of the type of the parameters with the given name.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getParameterTypeByName(java.lang.String)">getParameterTypeByName</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramName</CODE> - name of the parameter to return
<DT><B>Returns:</B><DD>XMLType    XMLType of paramName, or null if not found.</DL>
</DD>
</DL>
<HR>

<A NAME="getParameterTypeByQName(javax.xml.namespace.QName)"><!-- --></A><H3>
getParameterTypeByQName</H3>
<PRE>
public <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getParameterTypeByQName</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;paramQName)</PRE>
<DL>
<DD>Return the QName of the type of the parameters with the given name.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>paramQName</CODE> - QName of the parameter to return
<DT><B>Returns:</B><DD>XMLType    XMLType of paramQName, or null if not found.</DL>
</DD>
</DL>
<HR>

<A NAME="setReturnType(javax.xml.namespace.QName)"><!-- --></A><H3>
setReturnType</H3>
<PRE>
public void <B>setReturnType</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;type)</PRE>
<DL>
<DD>Sets the return type of the operation associated with this Call object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#setReturnType(javax.xml.namespace.QName)">setReturnType</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - QName of the return value type.</DL>
</DD>
</DL>
<HR>

<A NAME="setReturnType(javax.xml.namespace.QName, java.lang.Class)"><!-- --></A><H3>
setReturnType</H3>
<PRE>
public void <B>setReturnType</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                          java.lang.Class&nbsp;javaType)</PRE>
<DL>
<DD>Sets the return type for a specific operation.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#setReturnType(javax.xml.namespace.QName, java.lang.Class)">setReturnType</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>xmlType</CODE> - - QName of the data type of the return value<DD><CODE>javaType</CODE> - - Java class of the return value
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - - if isParameterAndReturnSpecRequired returns
 false, then setReturnType MAY throw JAXRPCException...Axis allows
 modification without throwing the exception.</DL>
</DD>
</DL>
<HR>

<A NAME="setReturnTypeAsHeader(javax.xml.namespace.QName)"><!-- --></A><H3>
setReturnTypeAsHeader</H3>
<PRE>
public void <B>setReturnTypeAsHeader</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType)</PRE>
<DL>
<DD>Set the return type as a header
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setReturnTypeAsHeader(javax.xml.namespace.QName, java.lang.Class)"><!-- --></A><H3>
setReturnTypeAsHeader</H3>
<PRE>
public void <B>setReturnTypeAsHeader</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                  java.lang.Class&nbsp;javaType)</PRE>
<DL>
<DD>Set the return type as a header
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getReturnType()"><!-- --></A><H3>
getReturnType</H3>
<PRE>
public <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getReturnType</B>()</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getReturnType()">getReturnType</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the XMLType specified for this Call (or null).</DL>
</DD>
</DL>
<HR>

<A NAME="setReturnQName(javax.xml.namespace.QName)"><!-- --></A><H3>
setReturnQName</H3>
<PRE>
public void <B>setReturnQName</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname)</PRE>
<DL>
<DD>Set the QName of the return element

 NOT part of JAX-RPC
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setReturnClass(java.lang.Class)"><!-- --></A><H3>
setReturnClass</H3>
<PRE>
public void <B>setReturnClass</B>(java.lang.Class&nbsp;cls)</PRE>
<DL>
<DD>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).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cls</CODE> - the desired return class.</DL>
</DD>
</DL>
<HR>

<A NAME="removeAllParameters()"><!-- --></A><H3>
removeAllParameters</H3>
<PRE>
public void <B>removeAllParameters</B>()</PRE>
<DL>
<DD>Clears the list of parameters.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#removeAllParameters()">removeAllParameters</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - - if isParameterAndReturnSpecRequired returns
  false, then removeAllParameters MAY throw JAXRPCException...Axis allows
  modification to the Call object without throwing an exception.</DL>
</DD>
</DL>
<HR>

<A NAME="getOperationName()"><!-- --></A><H3>
getOperationName</H3>
<PRE>
public <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getOperationName</B>()</PRE>
<DL>
<DD>Returns the operation name associated with this Call object.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getOperationName()">getOperationName</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>String Name of the operation or null if not set.</DL>
</DD>
</DL>
<HR>

<A NAME="setOperationName(javax.xml.namespace.QName)"><!-- --></A><H3>
setOperationName</H3>
<PRE>
public void <B>setOperationName</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;opName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#setOperationName(javax.xml.namespace.QName)">setOperationName</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>opName</CODE> - Name of the operation.</DL>
</DD>
</DL>
<HR>

<A NAME="setOperationName(java.lang.String)"><!-- --></A><H3>
setOperationName</H3>
<PRE>
public void <B>setOperationName</B>(java.lang.String&nbsp;opName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setOperation(java.lang.String)"><!-- --></A><H3>
setOperation</H3>
<PRE>
public void <B>setOperation</B>(java.lang.String&nbsp;opName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>opName</CODE> - Operation(method) that's going to be invoked
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setOperation(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
setOperation</H3>
<PRE>
public void <B>setOperation</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portName,
                         java.lang.String&nbsp;opName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>portName</CODE> - PortName in the WSDL doc to search for<DD><CODE>opName</CODE> - Operation(method) that's going to be invoked</DL>
</DD>
</DL>
<HR>

<A NAME="setOperation(javax.xml.namespace.QName, javax.xml.namespace.QName)"><!-- --></A><H3>
setOperation</H3>
<PRE>
public void <B>setOperation</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portName,
                         <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;opName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>portName</CODE> - PortName in the WSDL doc to search for<DD><CODE>opName</CODE> - Operation(method) that's going to be invoked</DL>
</DD>
</DL>
<HR>

<A NAME="getPortName()"><!-- --></A><H3>
getPortName</H3>
<PRE>
public <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getPortName</B>()</PRE>
<DL>
<DD>Returns the fully qualified name of the port for this Call object
 (if there is one).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>QName Fully qualified name of the port (or null if not set)</DL>
</DD>
</DL>
<HR>

<A NAME="setPortName(javax.xml.namespace.QName)"><!-- --></A><H3>
setPortName</H3>
<PRE>
public void <B>setPortName</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>portName</CODE> - Fully qualified name of the port</DL>
</DD>
</DL>
<HR>

<A NAME="getPortTypeName()"><!-- --></A><H3>
getPortTypeName</H3>
<PRE>
public <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A> <B>getPortTypeName</B>()</PRE>
<DL>
<DD>Returns the fully qualified name of the port type for this Call object
 (if there is one).
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getPortTypeName()">getPortTypeName</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>QName Fully qualified name of the port type</DL>
</DD>
</DL>
<HR>

<A NAME="setPortTypeName(javax.xml.namespace.QName)"><!-- --></A><H3>
setPortTypeName</H3>
<PRE>
public void <B>setPortTypeName</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;portType)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#setPortTypeName(javax.xml.namespace.QName)">setPortTypeName</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>portType</CODE> - Fully qualified name of the portType</DL>
</DD>
</DL>
<HR>

<A NAME="setSOAPVersion(org.apache.axis.soap.SOAPConstants)"><!-- --></A><H3>
setSOAPVersion</H3>
<PRE>
public void <B>setSOAPVersion</B>(<A HREF="../../../../org/apache/axis/soap/SOAPConstants.html" title="interface in org.apache.axis.soap">SOAPConstants</A>&nbsp;soapConstants)</PRE>
<DL>
<DD>Allow the user to set the default SOAP version.  For SOAP 1.2, pass
 SOAPConstants.SOAP12_CONSTANTS.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>soapConstants</CODE> - the SOAPConstants object representing the correct
                      version</DL>
</DD>
</DL>
<HR>

<A NAME="invoke(javax.xml.namespace.QName, java.lang.Object[])"><!-- --></A><H3>
invoke</H3>
<PRE>
public java.lang.Object <B>invoke</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;operationName,
                               java.lang.Object[]&nbsp;params)
                        throws java.rmi.RemoteException</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#invoke(javax.xml.namespace.QName, java.lang.Object[])">invoke</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operationName</CODE> - - Name of the operation to invoke<DD><CODE>params</CODE> - - Parameters for this invocation
<DT><B>Returns:</B><DD>the value returned from the other end.
<DT><B>Throws:</B>
<DD><CODE>java.rmi.RemoteException</CODE> - - if there is any error in the remote method invocation or if the Call
 object is not configured properly.</DL>
</DD>
</DL>
<HR>

<A NAME="invoke(java.lang.Object[])"><!-- --></A><H3>
invoke</H3>
<PRE>
public java.lang.Object <B>invoke</B>(java.lang.Object[]&nbsp;params)
                        throws java.rmi.RemoteException</PRE>
<DL>
<DD>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.  <b>All</b> 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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#invoke(java.lang.Object[])">invoke</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - Array of parameters to invoke the Web Service with
<DT><B>Returns:</B><DD>Object Return value of the operation/method - or null
<DT><B>Throws:</B>
<DD><CODE>java.rmi.RemoteException</CODE> - if there's an error</DL>
</DD>
</DL>
<HR>

<A NAME="invokeOneWay(java.lang.Object[])"><!-- --></A><H3>
invokeOneWay</H3>
<PRE>
public void <B>invokeOneWay</B>(java.lang.Object[]&nbsp;params)</PRE>
<DL>
<DD>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
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#invokeOneWay(java.lang.Object[])">invokeOneWay</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>params</CODE> - Array of parameters to invoke the Web Service with
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - is there's an error</DL>
</DD>
</DL>
<HR>

<A NAME="invoke(org.apache.axis.Message)"><!-- --></A><H3>
invoke</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A> <B>invoke</B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;msg)
                    throws <A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Invoke the service with a custom Message.
 This method simplifies invoke(SOAPEnvelope).
 <p>
 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - a Message to send
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE> - if there is any failure</DL>
</DD>
</DL>
<HR>

<A NAME="invoke(org.apache.axis.message.SOAPEnvelope)"><!-- --></A><H3>
invoke</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A> <B>invoke</B>(<A HREF="../../../../org/apache/axis/message/SOAPEnvelope.html" title="class in org.apache.axis.message">SOAPEnvelope</A>&nbsp;env)
                    throws <A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Invoke the service with a custom SOAPEnvelope.
 <p>
 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>env</CODE> - a SOAPEnvelope to send
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE> - if there is any failure</DL>
</DD>
</DL>
<HR>

<A NAME="setTransportForProtocol(java.lang.String, java.lang.Class)"><!-- --></A><H3>
setTransportForProtocol</H3>
<PRE>
public static void <B>setTransportForProtocol</B>(java.lang.String&nbsp;protocol,
                                           java.lang.Class&nbsp;transportClass)</PRE>
<DL>
<DD>Register a Transport that should be used for URLs of the specified
 protocol.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>protocol</CODE> - the URL protocol (i.e. "tcp" for "tcp://" urls)<DD><CODE>transportClass</CODE> - the class of a Transport type which will be used
                       for matching URLs.</DL>
</DD>
</DL>
<HR>

<A NAME="initialize()"><!-- --></A><H3>
initialize</H3>
<PRE>
public static void <B>initialize</B>()</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addTransportPackage(java.lang.String)"><!-- --></A><H3>
addTransportPackage</H3>
<PRE>
public static void <B>addTransportPackage</B>(java.lang.String&nbsp;packageName)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>packageName</CODE> - the package in which to search for protocol names.</DL>
</DD>
</DL>
<HR>

<A NAME="setTransport(org.apache.axis.client.Transport)"><!-- --></A><H3>
setTransport</H3>
<PRE>
public void <B>setTransport</B>(<A HREF="../../../../org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A>&nbsp;trans)</PRE>
<DL>
<DD>Set the Transport

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>trans</CODE> - the Transport object we'll use to set up
                  MessageContext properties.</DL>
</DD>
</DL>
<HR>

<A NAME="getTransportForProtocol(java.lang.String)"><!-- --></A><H3>
getTransportForProtocol</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/client/Transport.html" title="class in org.apache.axis.client">Transport</A> <B>getTransportForProtocol</B>(java.lang.String&nbsp;protocol)</PRE>
<DL>
<DD>Get the Transport registered for the given protocol.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>protocol</CODE> - a protocol such as "http" or "local" which may
                 have a Transport object associated with it.
<DT><B>Returns:</B><DD>the Transport registered for this protocol, or null if none.</DL>
</DD>
</DL>
<HR>

<A NAME="setRequestMessage(org.apache.axis.Message)"><!-- --></A><H3>
setRequestMessage</H3>
<PRE>
public void <B>setRequestMessage</B>(<A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A>&nbsp;msg)</PRE>
<DL>
<DD>Directly set the request message in our MessageContext.

 This allows custom message creation.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - the new request message.
<DT><B>Throws:</B>
<DD><CODE>java.lang.RuntimeException</CODE> - containing the text of an AxisFault, if any
 AxisFault was thrown</DL>
</DD>
</DL>
<HR>

<A NAME="getResponseMessage()"><!-- --></A><H3>
getResponseMessage</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/Message.html" title="class in org.apache.axis">Message</A> <B>getResponseMessage</B>()</PRE>
<DL>
<DD>Directly get the response message in our MessageContext.

 Shortcut for having to go thru the msgContext

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the response Message object in the msgContext</DL>
</DD>
</DL>
<HR>

<A NAME="getMessageContext()"><!-- --></A><H3>
getMessageContext</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/MessageContext.html" title="class in org.apache.axis">MessageContext</A> <B>getMessageContext</B>()</PRE>
<DL>
<DD>Obtain a reference to our MessageContext.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the MessageContext.</DL>
</DD>
</DL>
<HR>

<A NAME="addHeader(org.apache.axis.message.SOAPHeaderElement)"><!-- --></A><H3>
addHeader</H3>
<PRE>
public void <B>addHeader</B>(<A HREF="../../../../org/apache/axis/message/SOAPHeaderElement.html" title="class in org.apache.axis.message">SOAPHeaderElement</A>&nbsp;header)</PRE>
<DL>
<DD>Add a header which should be inserted into each outgoing message
 we generate.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>header</CODE> - a SOAPHeaderElement to be inserted into messages</DL>
</DD>
</DL>
<HR>

<A NAME="clearHeaders()"><!-- --></A><H3>
clearHeaders</H3>
<PRE>
public void <B>clearHeaders</B>()</PRE>
<DL>
<DD>Clear the list of headers which we insert into each message

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getTypeMapping()"><!-- --></A><H3>
getTypeMapping</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/encoding/TypeMapping.html" title="interface in org.apache.axis.encoding">TypeMapping</A> <B>getTypeMapping</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.SerializerFactory, org.apache.axis.encoding.DeserializerFactory)"><!-- --></A><H3>
registerTypeMapping</H3>
<PRE>
public void <B>registerTypeMapping</B>(java.lang.Class&nbsp;javaType,
                                <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                <A HREF="../../../../org/apache/axis/encoding/SerializerFactory.html" title="interface in org.apache.axis.encoding">SerializerFactory</A>&nbsp;sf,
                                <A HREF="../../../../org/apache/axis/encoding/DeserializerFactory.html" title="interface in org.apache.axis.encoding">DeserializerFactory</A>&nbsp;df)</PRE>
<DL>
<DD>Register type mapping information for serialization/deserialization

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>javaType</CODE> - is  the Java class of the data type.<DD><CODE>xmlType</CODE> - the xsi:type QName of the associated XML type.</DL>
</DD>
</DL>
<HR>

<A NAME="registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, org.apache.axis.encoding.SerializerFactory, org.apache.axis.encoding.DeserializerFactory, boolean)"><!-- --></A><H3>
registerTypeMapping</H3>
<PRE>
public void <B>registerTypeMapping</B>(java.lang.Class&nbsp;javaType,
                                <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                <A HREF="../../../../org/apache/axis/encoding/SerializerFactory.html" title="interface in org.apache.axis.encoding">SerializerFactory</A>&nbsp;sf,
                                <A HREF="../../../../org/apache/axis/encoding/DeserializerFactory.html" title="interface in org.apache.axis.encoding">DeserializerFactory</A>&nbsp;df,
                                boolean&nbsp;force)</PRE>
<DL>
<DD>Register type mapping information for serialization/deserialization

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>javaType</CODE> - is  the Java class of the data type.<DD><CODE>xmlType</CODE> - the xsi:type QName of the associated XML type.<DD><CODE>force</CODE> - Indicates whether to add the information if already registered.</DL>
</DD>
</DL>
<HR>

<A NAME="registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, java.lang.Class, java.lang.Class)"><!-- --></A><H3>
registerTypeMapping</H3>
<PRE>
public void <B>registerTypeMapping</B>(java.lang.Class&nbsp;javaType,
                                <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                java.lang.Class&nbsp;sfClass,
                                java.lang.Class&nbsp;dfClass)</PRE>
<DL>
<DD>register this type matting
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>javaType</CODE> - <DD><CODE>xmlType</CODE> - <DD><CODE>sfClass</CODE> - <DD><CODE>dfClass</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="registerTypeMapping(java.lang.Class, javax.xml.namespace.QName, java.lang.Class, java.lang.Class, boolean)"><!-- --></A><H3>
registerTypeMapping</H3>
<PRE>
public void <B>registerTypeMapping</B>(java.lang.Class&nbsp;javaType,
                                <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                                java.lang.Class&nbsp;sfClass,
                                java.lang.Class&nbsp;dfClass,
                                boolean&nbsp;force)</PRE>
<DL>
<DD>register a type. This only takes place if either the serializer or
 deserializer factory could be created.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>javaType</CODE> - java type to handle<DD><CODE>xmlType</CODE> - XML mapping<DD><CODE>sfClass</CODE> - class of serializer factory<DD><CODE>dfClass</CODE> - class of deserializer factory<DD><CODE>force</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="invoke(java.lang.String, java.lang.String, java.lang.Object[])"><!-- --></A><H3>
invoke</H3>
<PRE>
public java.lang.Object <B>invoke</B>(java.lang.String&nbsp;namespace,
                               java.lang.String&nbsp;method,
                               java.lang.Object[]&nbsp;args)
                        throws <A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespace</CODE> - the desired namespace URI of the method element<DD><CODE>method</CODE> - the method name<DD><CODE>args</CODE> - 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<n>".
<DT><B>Returns:</B><DD>a deserialized Java Object containing the return value
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="invoke(java.lang.String, java.lang.Object[])"><!-- --></A><H3>
invoke</H3>
<PRE>
public java.lang.Object <B>invoke</B>(java.lang.String&nbsp;method,
                               java.lang.Object[]&nbsp;args)
                        throws <A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Convenience method to invoke a method with a default (empty)
 namespace.  Calls invoke() above.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>method</CODE> - the method name<DD><CODE>args</CODE> - 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<n>".
<DT><B>Returns:</B><DD>a deserialized Java Object containing the return value
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="invoke(org.apache.axis.message.RPCElement)"><!-- --></A><H3>
invoke</H3>
<PRE>
public java.lang.Object <B>invoke</B>(<A HREF="../../../../org/apache/axis/message/RPCElement.html" title="class in org.apache.axis.message">RPCElement</A>&nbsp;body)
                        throws <A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Invoke an RPC service with a pre-constructed RPCElement.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>body</CODE> - an RPCElement containing all the information about
             this call.
<DT><B>Returns:</B><DD>a deserialized Java Object containing the return value
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setOption(java.lang.String, java.lang.Object)"><!-- --></A><H3>
setOption</H3>
<PRE>
public void <B>setOption</B>(java.lang.String&nbsp;name,
                      java.lang.Object&nbsp;value)</PRE>
<DL>
<DD>Set engine option.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="invoke()"><!-- --></A><H3>
invoke</H3>
<PRE>
public void <B>invoke</B>()
            throws <A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></PRE>
<DL>
<DD>Invoke this Call with its established MessageContext
 (perhaps because you called this.setRequestMessage())

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/axis/AxisFault.html" title="class in org.apache.axis">AxisFault</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getOutputParams()"><!-- --></A><H3>
getOutputParams</H3>
<PRE>
public java.util.Map <B>getOutputParams</B>()</PRE>
<DL>
<DD>Get the output parameters (if any) from the last invocation.
 
 This allows named access - if you need sequential access, use
 getOutputValues().
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getOutputParams()">getOutputParams</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a Map containing the output parameter values, indexed by QName</DL>
</DD>
</DL>
<HR>

<A NAME="getOutputValues()"><!-- --></A><H3>
getOutputValues</H3>
<PRE>
public java.util.List <B>getOutputValues</B>()</PRE>
<DL>
<DD>Returns a List values for the output parameters of the last
 invoked operation.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../javax/xml/rpc/Call.html#getOutputValues()">getOutputValues</A></CODE> in interface <CODE><A HREF="../../../../javax/xml/rpc/Call.html" title="interface in javax.xml.rpc">Call</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>Values for the output parameters. An empty List is
         returned if there are no output values.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../javax/xml/rpc/JAXRPCException.html" title="class in javax.xml.rpc">JAXRPCException</A></CODE> - - If this method is invoked for a
                           one-way operation or is invoked
                           before any invoke method has been called.</DL>
</DD>
</DL>
<HR>

<A NAME="getService()"><!-- --></A><H3>
getService</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/client/Service.html" title="class in org.apache.axis.client">Service</A> <B>getService</B>()</PRE>
<DL>
<DD>Get the Service object associated with this Call object.

 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>Service the Service object this Call object is associated with</DL>
</DD>
</DL>
<HR>

<A NAME="setSOAPService(org.apache.axis.handlers.soap.SOAPService)"><!-- --></A><H3>
setSOAPService</H3>
<PRE>
public void <B>setSOAPService</B>(<A HREF="../../../../org/apache/axis/handlers/soap/SOAPService.html" title="class in org.apache.axis.handlers.soap">SOAPService</A>&nbsp;service)</PRE>
<DL>
<DD>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
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setClientHandlers(org.apache.axis.Handler, org.apache.axis.Handler)"><!-- --></A><H3>
setClientHandlers</H3>
<PRE>
public void <B>setClientHandlers</B>(<A HREF="../../../../org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>&nbsp;reqHandler,
                              <A HREF="../../../../org/apache/axis/Handler.html" title="interface in org.apache.axis">Handler</A>&nbsp;respHandler)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addAttachmentPart(java.lang.Object)"><!-- --></A><H3>
addAttachmentPart</H3>
<PRE>
public void <B>addAttachmentPart</B>(java.lang.Object&nbsp;attachment)</PRE>
<DL>
<DD>This method adds an attachment.
 <p>
 Note: Not part of JAX-RPC specification.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attachment</CODE> - the <code>Object</code> to attach
<DT><B>Throws:</B>
<DD><CODE>java.lang.RuntimeException</CODE> - if there is no support for attachments</DL>
</DD>
</DL>
<HR>

<A NAME="addFault(javax.xml.namespace.QName, java.lang.Class, javax.xml.namespace.QName, boolean)"><!-- --></A><H3>
addFault</H3>
<PRE>
public void <B>addFault</B>(<A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;qname,
                     java.lang.Class&nbsp;cls,
                     <A HREF="../../../../javax/xml/namespace/QName.html" title="class in javax.xml.namespace">QName</A>&nbsp;xmlType,
                     boolean&nbsp;isComplex)</PRE>
<DL>
<DD>Add a fault for this operation.
 <p>
 Note: Not part of JAX-RPC specificaion.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>qname</CODE> - qname of the fault<DD><CODE>cls</CODE> - class of the fault<DD><CODE>xmlType</CODE> - XML type of the fault<DD><CODE>isComplex</CODE> - true if xmlType is a complex type, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="setOperation(org.apache.axis.description.OperationDesc)"><!-- --></A><H3>
setOperation</H3>
<PRE>
public void <B>setOperation</B>(<A HREF="../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A>&nbsp;operation)</PRE>
<DL>
<DD>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.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>operation</CODE> - the OperationDesc to associate with this call.</DL>
</DD>
</DL>
<HR>

<A NAME="getOperation()"><!-- --></A><H3>
getOperation</H3>
<PRE>
public <A HREF="../../../../org/apache/axis/description/OperationDesc.html" title="class in org.apache.axis.description">OperationDesc</A> <B>getOperation</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="clearOperation()"><!-- --></A><H3>
clearOperation</H3>
<PRE>
public void <B>clearOperation</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Call.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/axis/client/AxisClientProxy.html" title="class in org.apache.axis.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/axis/client/HappyClient.html" title="class in org.apache.axis.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Call.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>

</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright © 2005 Apache Web Services Project. All Rights Reserved.
</BODY>
</HTML>
