<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Deprecated List (Apache Axis2)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Deprecated List (Apache Axis2)";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#class">Classes</a></li>
<li><a href="#field">Fields</a></li>
<li><a href="#method">Methods</a></li>
<li><a href="#constructor">Constructors</a></li>
</ul>
</div>
<div class="contentContainer"><a id="class">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/NegativeInteger.BigIntegerRep.html" title="class in org.apache.axis2.databinding.types">org.apache.axis2.databinding.types.NegativeInteger.BigIntegerRep</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/NonNegativeInteger.BigIntegerRep.html" title="class in org.apache.axis2.databinding.types">org.apache.axis2.databinding.types.NonNegativeInteger.BigIntegerRep</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/NonPositiveInteger.BigIntegerRep.html" title="class in org.apache.axis2.databinding.types">org.apache.axis2.databinding.types.NonPositiveInteger.BigIntegerRep</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/PositiveInteger.BigIntegerRep.html" title="class in org.apache.axis2.databinding.types">org.apache.axis2.databinding.types.PositiveInteger.BigIntegerRep</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/util/ClassLoaderUtils.html" title="class in org.apache.axis2.jaxws.util">org.apache.axis2.jaxws.util.ClassLoaderUtils</a></th>
<td class="colLast">
<div class="deprecationComment">- Security Risk. Please don't use this class, As a general rule
 end user code should not be able to access AccessController.doPrivileged</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/kernel/http/util/ComplexPart.html" title="class in org.apache.axis2.kernel.http.util">org.apache.axis2.kernel.http.util.ComplexPart</a></th>
<td class="colLast"></td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/maven2/wsdl2code/WSDL2CodeMojo.html" title="class in org.apache.axis2.maven2.wsdl2code">org.apache.axis2.maven2.wsdl2code.WSDL2CodeMojo</a></th>
<td class="colLast">
<div class="deprecationComment">This goal is identical to axis2-wsdl2code:generate-sources; either switch to that
             goal or use the new axis2-wsdl2code:generate-test-sources goal if you need to
             generate code for use in unit tests only.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/rpc/receivers/ejb/EJBInOutAsyncMessageReceiver.html" title="class in org.apache.axis2.rpc.receivers.ejb">org.apache.axis2.rpc.receivers.ejb.EJBInOutAsyncMessageReceiver</a></th>
<td class="colLast">
<div class="deprecationComment">you can just use EJBMessageReceiver</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/transport/http/HttpTransportProperties.MailProperties.html" title="class in org.apache.axis2.transport.http">org.apache.axis2.transport.http.HttpTransportProperties.MailProperties</a></th>
<td class="colLast">
<div class="deprecationComment">org.apache.axis2.transport.http.HttpTransportProperties.MailProperties has been
 deprecated and user are encourage the use of java.util.Properties instead.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/ws/java2wsdl/Java2WSDLTask.html" title="class in org.apache.ws.java2wsdl">org.apache.ws.java2wsdl.Java2WSDLTask</a></th>
<td class="colLast">
<div class="deprecationComment">please use org.apache.axis2.tool.ant.Java2WSDLTask</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="field">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/builder/BuilderUtil.html#BOM_SIZE">org.apache.axis2.builder.BuilderUtil.BOM_SIZE</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/Constants.html#TESTING_PATH">org.apache.axis2.Constants.TESTING_PATH</a></th>
<td class="colLast"></td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/Constants.html#TESTING_REPOSITORY">org.apache.axis2.Constants.TESTING_REPOSITORY</a></th>
<td class="colLast"></td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/Constants.html#JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING">org.apache.axis2.jaxws.Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING</a></th>
<td class="colLast">
<div class="deprecationComment">see JAXWS_PAYLOAD_HIGH_FIDELITY</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/description/builder/MDQConstants.html#SEI_MTOM_ENABLEMENT_MAP">org.apache.axis2.jaxws.description.builder.MDQConstants.SEI_MTOM_ENABLEMENT_MAP</a></th>
<td class="colLast">
<div class="deprecationComment">Replaced by SEI_FEATURES_MAP with a MTOMAnnot to indicate if MTOM is enabled.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/kernel/http/HTTPConstants.html#MTOM_RECEIVED_CONTENT_TYPE">org.apache.axis2.kernel.http.HTTPConstants.MTOM_RECEIVED_CONTENT_TYPE</a></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="method">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/addressing/EndpointReference.html#getName()">org.apache.axis2.addressing.EndpointReference.getName()</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/addressing/EndpointReference.html#setName(java.lang.String)">org.apache.axis2.addressing.EndpointReference.setName&#8203;(String)</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/builder/BuilderUtil.html#getBuilderFromSelector(java.lang.String,org.apache.axis2.context.MessageContext)">org.apache.axis2.builder.BuilderUtil.getBuilderFromSelector&#8203;(String, MessageContext)</a></th>
<td class="colLast">
<div class="deprecationComment">Use <a href="org/apache/axis2/util/MessageProcessorSelector.html#getMessageBuilder(java.lang.String,org.apache.axis2.context.MessageContext)"><code>MessageProcessorSelector.getMessageBuilder(String, MessageContext)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/builder/BuilderUtil.html#getCharSetEncoding(java.io.PushbackInputStream,java.lang.String)">org.apache.axis2.builder.BuilderUtil.getCharSetEncoding&#8203;(PushbackInputStream, String)</a></th>
<td class="colLast">
<div class="deprecationComment">It's the role of the XML parser to determine the charset encoding and/or byte
             order using the algorithm described in the "Autodetection of Character Encodings"
             appendix of the XML spec. If you need this method, then something is wrong:
             probably you are using a <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>Reader</code></a> where you should use an
             <a href="https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/builder/BuilderUtil.html#getPushbackInputStream(java.io.InputStream)">org.apache.axis2.builder.BuilderUtil.getPushbackInputStream&#8203;(InputStream)</a></th>
<td class="colLast">
<div class="deprecationComment">If you need a <a href="https://docs.oracle.com/javase/7/docs/api/java/io/PushbackInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>PushbackInputStream</code></a> just construct one (with the
             appropriate size).</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/builder/BuilderUtil.html#getReader(java.io.InputStream,java.lang.String)">org.apache.axis2.builder.BuilderUtil.getReader&#8203;(InputStream, String)</a></th>
<td class="colLast">
<div class="deprecationComment">Instead of using this method, you should probably pass the <a href="https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>
             directly to the XML parser. If the stream is not XML, you shouldn't be using this
             method anyway.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/context/AbstractContext.html#getProperties()">org.apache.axis2.context.AbstractContext.getProperties()</a></th>
<td class="colLast">
<div class="deprecationComment">Use <a href="org/apache/axis2/context/AbstractContext.html#getPropertyNames()"><code>AbstractContext.getPropertyNames()</code></a>, <a href="org/apache/axis2/context/AbstractContext.html#getProperty(java.lang.String)"><code>AbstractContext.getProperty(String)</code></a>,
             <a href="org/apache/axis2/context/AbstractContext.html#setProperty(java.lang.String,java.lang.Object)"><code>AbstractContext.setProperty(String, Object)</code></a> & <a href="org/apache/axis2/context/AbstractContext.html#removeProperty(java.lang.String)"><code>AbstractContext.removeProperty(String)</code></a>instead.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/context/MessageContext.html#isHeaderPresent()">org.apache.axis2.context.MessageContext.isHeaderPresent()</a></th>
<td class="colLast">
<div class="deprecationComment">The bonus you used to get from this is now built in to SOAPEnvelope.getHeader()</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/Duration.html#setSeconds(int)">org.apache.axis2.databinding.types.Duration.setSeconds&#8203;(int)</a></th>
<td class="colLast">
<div class="deprecationComment">use <a href="org/apache/axis2/databinding/types/Duration.html#setSeconds(double)"><code>setSeconds(double)</code></a> instead</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/NegativeInteger.html#writeReplace()">org.apache.axis2.databinding.types.NegativeInteger.writeReplace()</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/NonNegativeInteger.html#writeReplace()">org.apache.axis2.databinding.types.NonNegativeInteger.writeReplace()</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/NonPositiveInteger.html#writeReplace()">org.apache.axis2.databinding.types.NonPositiveInteger.writeReplace()</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/types/PositiveInteger.html#writeReplace()">org.apache.axis2.databinding.types.PositiveInteger.writeReplace()</a></th>
<td class="colLast">
<div class="deprecationComment">As per https://issues.apache.org/jira/browse/AXIS2-3848</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/databinding/utils/BeanUtil.html#getUniquePrifix()">org.apache.axis2.databinding.utils.BeanUtil.getUniquePrifix()</a></th>
<td class="colLast">
<div class="deprecationComment">Please use getUniquePrefix</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/AxisDescription.html#getPolicyInclude()">org.apache.axis2.description.AxisDescription.getPolicyInclude()</a></th>
<td class="colLast">
<div class="deprecationComment">As of release 1.4, replaced by <a href="org/apache/axis2/description/AxisDescription.html#getPolicySubject()"><code>AxisDescription.getPolicySubject()</code></a></div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/AxisDescription.html#setPolicyInclude(org.apache.axis2.description.PolicyInclude)">org.apache.axis2.description.AxisDescription.setPolicyInclude&#8203;(PolicyInclude)</a></th>
<td class="colLast">
<div class="deprecationComment">As of release 1.4, if you want to access the policy cache of a particular
             AxisDescription object use <a href="org/apache/axis2/description/AxisDescription.html#getPolicySubject()"><code>AxisDescription.getPolicySubject()</code></a> instead.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/AxisService.html#getEndpointURL()">org.apache.axis2.description.AxisService.getEndpointURL()</a></th>
<td class="colLast">
<div class="deprecationComment">use <a href="org/apache/axis2/description/AxisEndpoint.html#getEndpointURL()"><code>AxisEndpoint.getEndpointURL()</code></a></div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/AxisService.html#setEndpointURL(java.lang.String)">org.apache.axis2.description.AxisService.setEndpointURL&#8203;(String)</a></th>
<td class="colLast">
<div class="deprecationComment">use <a href="org/apache/axis2/description/AxisEndpoint.html#setEndpointURL(java.lang.String)"><code>AxisEndpoint.setEndpointURL(String)</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/PolicyInclude.html#getEffectivePolicy()">org.apache.axis2.description.PolicyInclude.getEffectivePolicy()</a></th>
<td class="colLast">
<div class="deprecationComment">As of 1.4 release. Use
             <a href="org/apache/axis2/description/AxisMessage.html" title="class in org.apache.axis2.description"><code>#getEffectivePolicy()</code></a> or
             <a href="org/apache/axis2/description/AxisBindingMessage.html" title="class in org.apache.axis2.description"><code>#getEffectivePolicy()</code></a> when
             applicable.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/PolicyInclude.html#getPolicy()">org.apache.axis2.description.PolicyInclude.getPolicy()</a></th>
<td class="colLast">
<div class="deprecationComment">As of 1.4 release. If you need to calculate merged policy of
             all policies that are in the policy cache of
             <a href="org/apache/axis2/description/AxisDescription.html" title="class in org.apache.axis2.description"><code>AxisDescription</code></a>, use
             <a href="org/apache/axis2/description/PolicySubject.html" title="class in org.apache.axis2.description"><code>#getAttachedPolicyComponents() and {@link org.PolicyUtil #getMergedPolicy(List, AxisDescription)}</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/PolicyInclude.html#getPolicyElements(int)">org.apache.axis2.description.PolicyInclude.getPolicyElements&#8203;(int)</a></th>
<td class="colLast">
<div class="deprecationComment">As of 1.4 release. The policy element type is no longer
             required since we maintain a complete binding description
             hierarchy for the static description the service. Hence use
             <a href="org/apache/axis2/description/PolicySubject.html" title="class in org.apache.axis2.description"><code>#getAttachedPolicyComponents()</code></a> on
             appropriate description object.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/PolicyInclude.html#setEffectivePolicy(org.apache.neethi.Policy)">org.apache.axis2.description.PolicyInclude.setEffectivePolicy&#8203;(Policy)</a></th>
<td class="colLast">
<div class="deprecationComment">As of 1.4 release. You can't override a policies that
             applicable for the current policy scope via
             <a href="org/apache/axis2/description/PolicyInclude.html" title="class in org.apache.axis2.description"><code>#setEffectivePolicy(Policy)</code></a>. In case
             you need to make a policy the only policy that is within the
             policy cache of an <a href="org/apache/axis2/description/AxisDescription.html" title="class in org.apache.axis2.description"><code>AxisDescription</code></a> please use
             <a href="org/apache/axis2/description/PolicySubject.html" title="class in org.apache.axis2.description"><code>#clear()</code></a> and
             <a href="org/apache/axis2/description/PolicySubject.html" title="class in org.apache.axis2.description"><code>#attachPolicy(Policy)</code></a> accordingly.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/description/PolicyInclude.html#setPolicy(org.apache.neethi.Policy)">org.apache.axis2.description.PolicyInclude.setPolicy&#8203;(Policy)</a></th>
<td class="colLast">
<div class="deprecationComment">As of 1.4 release, replaced by
             <a href="org/apache/axis2/description/PolicySubject.html" title="class in org.apache.axis2.description"><code>#attachPolicy(Policy)</code></a> Use
             <a href="org/apache/axis2/description/PolicySubject.html" title="class in org.apache.axis2.description"><code>#clear()</code></a> beforehand effective policy of
             <a href="org/apache/axis2/description/AxisDescription.html" title="class in org.apache.axis2.description"><code>AxisDescription</code></a> has to be set as the argument.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#createWebServiceRefAnnotImpl(java.lang.String,java.lang.String,java.lang.Class,java.lang.Class,java.lang.String,java.lang.String,java.lang.String)">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.createWebServiceRefAnnotImpl&#8203;(String, String, Class, Class, String, String, String)</a></th>
<td class="colLast">
<div class="deprecationComment">The String values for type and value should not be used.  Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#createWebServiceRefAnnotImpl(java.lang.String,java.lang.String,java.lang.Class,java.lang.Class,java.lang.String)"><code>WebServiceRefAnnot.createWebServiceRefAnnotImpl(String, String, Class, Class, String)</code></a>
 
  There shouldn't be both a class and String for type and value; there isn't on the actual 
  annotation.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#getTypeString()">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.getTypeString()</a></th>
<td class="colLast">
<div class="deprecationComment">Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#type()"><code>WebServiceRefAnnot.type()</code></a></div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#getValueString()">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.getValueString()</a></th>
<td class="colLast">
<div class="deprecationComment">Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#value()"><code>WebServiceRefAnnot.value()</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setTypeString(java.lang.String)">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.setTypeString&#8203;(String)</a></th>
<td class="colLast">
<div class="deprecationComment">Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setType(java.lang.Class)"><code>WebServiceRefAnnot.setType(Class)</code></a></div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setValueString(java.lang.String)">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.setValueString&#8203;(String)</a></th>
<td class="colLast">
<div class="deprecationComment"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setValue(java.lang.Class)"><code>WebServiceRefAnnot.setValue(Class)</code></a></div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/message/databinding/JAXBUtils.html#getJAXBContext(java.util.TreeSet)">org.apache.axis2.jaxws.message.databinding.JAXBUtils.getJAXBContext&#8203;(TreeSet&lt;String&gt;)</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/server/endpoint/Utils.html#bindingTypesMatch(org.apache.axis2.jaxws.core.MessageContext,org.apache.axis2.jaxws.description.ServiceDescription)">org.apache.axis2.jaxws.server.endpoint.Utils.bindingTypesMatch&#8203;(MessageContext, ServiceDescription)</a></th>
<td class="colLast"></td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/schema/BeanWriterMetaInfoHolder.html#getElementQNameIterator()">org.apache.axis2.schema.BeanWriterMetaInfoHolder.getElementQNameIterator()</a></th>
<td class="colLast">
<div class="deprecationComment">Use #getQNameArray</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/transport/http/HTTPTransportUtils.html#createEnvelopeFromGetRequest(java.lang.String,java.util.Map,org.apache.axis2.context.ConfigurationContext)">org.apache.axis2.transport.http.HTTPTransportUtils.createEnvelopeFromGetRequest&#8203;(String, Map, ConfigurationContext)</a></th>
<td class="colLast">
<div class="deprecationComment">This was used only by the now deprecated processHTTPGetRequest() method.</div>
</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/transport/http/HTTPTransportUtils.html#processHTTPGetRequest(org.apache.axis2.context.MessageContext,java.io.OutputStream,java.lang.String,java.lang.String,org.apache.axis2.context.ConfigurationContext,java.util.Map)">org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPGetRequest&#8203;(MessageContext, OutputStream, String, String, ConfigurationContext, Map)</a></th>
<td class="colLast">
<div class="deprecationComment">use RESTUtil.processURLRequest(MessageContext msgContext, OutputStream out, String contentType) instead</div>
</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/wsdl/codegen/CodeGenConfiguration.html#getXsdConfigFile()">org.apache.axis2.wsdl.codegen.CodeGenConfiguration.getXsdConfigFile()</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/wsdl/codegen/CodeGenConfiguration.html#setXsdConfigFile(java.lang.String)">org.apache.axis2.wsdl.codegen.CodeGenConfiguration.setXsdConfigFile&#8203;(String)</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.html#adjustWSDLSchemaLocatins(javax.wsdl.Definition,java.util.Map)">org.apache.axis2.wsdl.codegen.writer.WSDL11Writer.adjustWSDLSchemaLocatins&#8203;(Definition, Map)</a></th>
<td class="colLast">
<div class="deprecationComment">please use adjustWSDLSchemaLocations</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a id="constructor">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/datasource/jaxb/JAXBDSContext.html#%3Cinit%3E(java.lang.String)">org.apache.axis2.datasource.jaxb.JAXBDSContext&#8203;(String)</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/message/databinding/JAXBBlockContext.html#%3Cinit%3E(java.lang.String)">org.apache.axis2.jaxws.message.databinding.JAXBBlockContext&#8203;(String)</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colDeprecatedItemName" scope="row"><a href="org/apache/axis2/jaxws/util/WSDL4JWrapper.html#%3Cinit%3E(java.net.URL)">org.apache.axis2.jaxws.util.WSDL4JWrapper&#8203;(URL)</a></th>
<td class="colLast">
<div class="deprecationComment">Use a constructor that passes in the ConfigContext, or memoryLimit parameter</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &copy; <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</footer>
</body>
</html>