<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Deprecated List (Apache Axis2)</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Deprecated List (Apache Axis2)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.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">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All Classes</a></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>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#class">Deprecated Classes</a></li>
<li><a href="#field">Deprecated Fields</a></li>
<li><a href="#method">Deprecated Methods</a></li>
<li><a href="#constructor">Deprecated Constructors</a></li>
</ul>
</div>
<div class="contentContainer"><a name="class">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/util/ClassLoaderUtils.html" title="class in org.apache.axis2.jaxws.util">org.apache.axis2.jaxws.util.ClassLoaderUtils</a>
<div class="block"><i>- Security Risk. Please don't use this class, As a general rule
 end user code should not be able to access AccessController.doPrivileged</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/transport/http/util/ComplexPart.html" title="class in org.apache.axis2.transport.http.util">org.apache.axis2.transport.http.util.ComplexPart</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><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>
<div class="block"><i>you can just use EJBMessageReceiver</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/transport/http/impl/httpclient3/HTTPProxcyConfigurator.html" title="class in org.apache.axis2.transport.http.impl.httpclient3">org.apache.axis2.transport.http.impl.httpclient3.HTTPProxcyConfigurator</a>
<div class="block"><i>use <a href="org/apache/axis2/transport/http/impl/httpclient3/HTTPProxyConfigurator.html" title="class in org.apache.axis2.transport.http.impl.httpclient3"><code>HTTPProxyConfigurator</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/transport/http/util/HTTPProxyConfigurationUtil.html" title="class in org.apache.axis2.transport.http.util">org.apache.axis2.transport.http.util.HTTPProxyConfigurationUtil</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><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>
<div class="block"><i>org.apache.axis2.transport.http.HttpTransportProperties.MailProperties has been
 deprecated and user are encourage the use of java.util.Properties instead.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/ws/java2wsdl/Java2WSDLTask.html" title="class in org.apache.ws.java2wsdl">org.apache.ws.java2wsdl.Java2WSDLTask</a>
<div class="block"><i>please use org.apache.axis2.tool.ant.Java2WSDLTask</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><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>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><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>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><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>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><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>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="field">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Fields table, listing deprecated fields, and an explanation">
<caption><span>Deprecated Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Field and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#BOM_SIZE">org.apache.axis2.builder.BuilderUtil.BOM_SIZE</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/Constants.html#JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING">org.apache.axis2.jaxws.Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING</a>
<div class="block"><i>see JAXWS_PAYLOAD_HIGH_FIDELITY</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/transport/http/HTTPConstants.html#MTOM_RECEIVED_CONTENT_TYPE">org.apache.axis2.transport.http.HTTPConstants.MTOM_RECEIVED_CONTENT_TYPE</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><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>
<div class="block"><i>Replaced by SEI_FEATURES_MAP with a MTOMAnnot to indicate if MTOM is enabled.</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="method">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><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(Definition, Map)</a>
<div class="block"><i>please use adjustWSDLSchemaLocations</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><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(MessageContext, ServiceDescription)</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><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(String, Map, ConfigurationContext)</a>
<div class="block"><i>This was used only by the now deprecated processHTTPGetRequest() method.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><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(String, String, Class, Class, String, String, String)</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getBuilder(java.io.InputStream)">org.apache.axis2.builder.BuilderUtil.getBuilder(InputStream)</a>
<div class="block"><i>Please use <a href="http://ws.apache.org/axiom/apidocs/org/apache/axiom/om/OMXMLBuilderFactory.html?is-external=true#createOMBuilder(java.io.InputStream)" title="class or interface in org.apache.axiom.om"><code>OMXMLBuilderFactory.createOMBuilder(InputStream)</code></a> instead.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getBuilder(java.io.InputStream, java.lang.String)">org.apache.axis2.builder.BuilderUtil.getBuilder(InputStream, String)</a>
<div class="block"><i>Please use <a href="org/apache/axis2/builder/BuilderUtil.html#createSOAPModelBuilder(java.io.InputStream, java.lang.String)"><code>BuilderUtil.createSOAPModelBuilder(InputStream, String)</code></a> to enable usage
             of non standard Axiom implementations.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getBuilder(java.io.Reader)">org.apache.axis2.builder.BuilderUtil.getBuilder(Reader)</a>
<div class="block"><i>If some one really need this method, please shout.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getCharSetEncoding(java.io.PushbackInputStream, java.lang.String)">org.apache.axis2.builder.BuilderUtil.getCharSetEncoding(PushbackInputStream, String)</a>
<div class="block"><i>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"><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"><code>InputStream</code></a>.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/description/PolicyInclude.html#getEffectivePolicy()">org.apache.axis2.description.PolicyInclude.getEffectivePolicy()</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/schema/BeanWriterMetaInfoHolder.html#getElementQNameIterator()">org.apache.axis2.schema.BeanWriterMetaInfoHolder.getElementQNameIterator()</a>
<div class="block"><i>Use #getQNameArray</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/description/AxisService.html#getEndpointURL()">org.apache.axis2.description.AxisService.getEndpointURL()</a>
<div class="block"><i>use <a href="org/apache/axis2/description/AxisEndpoint.html#getEndpointURL()"><code>AxisEndpoint.getEndpointURL()</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/message/databinding/JAXBUtils.html#getJAXBContext(java.util.TreeSet)">org.apache.axis2.jaxws.message.databinding.JAXBUtils.getJAXBContext(TreeSet<String>)</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/message/databinding/JAXBUtils.html#getJAXBContext(java.util.TreeSet, java.lang.ClassLoader)">org.apache.axis2.jaxws.message.databinding.JAXBUtils.getJAXBContext(TreeSet<String>, ClassLoader)</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/addressing/EndpointReference.html#getName()">org.apache.axis2.addressing.EndpointReference.getName()</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/description/PolicyInclude.html#getPolicy()">org.apache.axis2.description.PolicyInclude.getPolicy()</a>
<div class="block"><i>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></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/description/PolicyInclude.html#getPolicyElements(int)">org.apache.axis2.description.PolicyInclude.getPolicyElements(int)</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/description/AxisDescription.html#getPolicyInclude()">org.apache.axis2.description.AxisDescription.getPolicyInclude()</a>
<div class="block"><i>As of release 1.4, replaced by <a href="org/apache/axis2/description/AxisDescription.html#getPolicySubject()"><code>AxisDescription.getPolicySubject()</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getPOXBuilder(java.io.InputStream, java.lang.String)">org.apache.axis2.builder.BuilderUtil.getPOXBuilder(InputStream, String)</a>
<div class="block"><i>Please use <a href="org/apache/axis2/builder/BuilderUtil.html#createPOXBuilder(java.io.InputStream, java.lang.String)"><code>BuilderUtil.createPOXBuilder(InputStream, String)</code></a> to enable usage of non
             standard Axiom implementations.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/context/AbstractContext.html#getProperties()">org.apache.axis2.context.AbstractContext.getProperties()</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getPushbackInputStream(java.io.InputStream)">org.apache.axis2.builder.BuilderUtil.getPushbackInputStream(InputStream)</a>
<div class="block"><i>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"><code>PushbackInputStream</code></a> just construct one (with the
             appropriate size).</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getReader(java.io.InputStream, java.lang.String)">org.apache.axis2.builder.BuilderUtil.getReader(InputStream, String)</a>
<div class="block"><i>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"><code>InputStream</code></a>
             directly to the XML parser. If the stream is not XML, you shouldn't be using this
             method anyway.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getSOAPBuilder(java.io.InputStream)">org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(InputStream)</a>
<div class="block"><i>Please use <a href="org/apache/axis2/builder/BuilderUtil.html#createSOAPModelBuilder(java.io.InputStream, java.lang.String)"><code>BuilderUtil.createSOAPModelBuilder(InputStream, String)</code></a> to enable usage
             of non standard Axiom implementations.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/builder/BuilderUtil.html#getSOAPBuilder(java.io.InputStream, java.lang.String)">org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(InputStream, String)</a>
<div class="block"><i>Please use <a href="org/apache/axis2/builder/BuilderUtil.html#createSOAPModelBuilder(java.io.InputStream, java.lang.String)"><code>BuilderUtil.createSOAPModelBuilder(InputStream, String)</code></a> to enable usage
             of non standard Axiom implementations.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#getTypeString()">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.getTypeString()</a>
<div class="block"><i>Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#type()"><code>WebServiceRefAnnot.type()</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/databinding/utils/BeanUtil.html#getUniquePrifix()">org.apache.axis2.databinding.utils.BeanUtil.getUniquePrifix()</a>
<div class="block"><i>Please use getUniquePrefix</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#getValueString()">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.getValueString()</a>
<div class="block"><i>Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#value()"><code>WebServiceRefAnnot.value()</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/wsdl/codegen/CodeGenConfiguration.html#getXsdConfigFile()">org.apache.axis2.wsdl.codegen.CodeGenConfiguration.getXsdConfigFile()</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/context/MessageContext.html#isHeaderPresent()">org.apache.axis2.context.MessageContext.isHeaderPresent()</a>
<div class="block"><i>The bonus you used to get from this is now built in to SOAPEnvelope.getHeader()</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><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(MessageContext, OutputStream, String, String, ConfigurationContext, Map)</a>
<div class="block"><i>use RESTUtil.processURLRequest(MessageContext msgContext, OutputStream out, String contentType) instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/description/PolicyInclude.html#setEffectivePolicy(org.apache.neethi.Policy)">org.apache.axis2.description.PolicyInclude.setEffectivePolicy(Policy)</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/description/AxisService.html#setEndpointURL(java.lang.String)">org.apache.axis2.description.AxisService.setEndpointURL(String)</a>
<div class="block"><i>use <a href="org/apache/axis2/description/AxisEndpoint.html#setEndpointURL(java.lang.String)"><code>AxisEndpoint.setEndpointURL(String)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/addressing/EndpointReference.html#setName(java.lang.String)">org.apache.axis2.addressing.EndpointReference.setName(String)</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/description/PolicyInclude.html#setPolicy(org.apache.neethi.Policy)">org.apache.axis2.description.PolicyInclude.setPolicy(Policy)</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/description/AxisDescription.html#setPolicyInclude(org.apache.axis2.description.PolicyInclude)">org.apache.axis2.description.AxisDescription.setPolicyInclude(PolicyInclude)</a>
<div class="block"><i>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.</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/databinding/types/Duration.html#setSeconds(int)">org.apache.axis2.databinding.types.Duration.setSeconds(int)</a>
<div class="block"><i>use <a href="org/apache/axis2/databinding/types/Duration.html#setSeconds(double)"><code>setSeconds(double)</code></a> instead</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setTypeString(java.lang.String)">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.setTypeString(String)</a>
<div class="block"><i>Use <a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setType(java.lang.Class)"><code>WebServiceRefAnnot.setType(Class)</code></a></i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setValueString(java.lang.String)">org.apache.axis2.jaxws.description.builder.WebServiceRefAnnot.setValueString(String)</a>
<div class="block"><i><a href="org/apache/axis2/jaxws/description/builder/WebServiceRefAnnot.html#setValue(java.lang.Class)"><code>WebServiceRefAnnot.setValue(Class)</code></a></i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/wsdl/codegen/CodeGenConfiguration.html#setXsdConfigFile(java.lang.String)">org.apache.axis2.wsdl.codegen.CodeGenConfiguration.setXsdConfigFile(String)</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/databinding/types/PositiveInteger.html#writeReplace()">org.apache.axis2.databinding.types.PositiveInteger.writeReplace()</a>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/databinding/types/NonPositiveInteger.html#writeReplace()">org.apache.axis2.databinding.types.NonPositiveInteger.writeReplace()</a>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/databinding/types/NonNegativeInteger.html#writeReplace()">org.apache.axis2.databinding.types.NonNegativeInteger.writeReplace()</a>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/databinding/types/NegativeInteger.html#writeReplace()">org.apache.axis2.databinding.types.NegativeInteger.writeReplace()</a>
<div class="block"><i>As per https://issues.apache.org/jira/browse/AXIS2-3848</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="constructor">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/message/databinding/JAXBBlockContext.html#JAXBBlockContext(java.lang.String)">org.apache.axis2.jaxws.message.databinding.JAXBBlockContext(String)</a>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/datasource/jaxb/JAXBDSContext.html#JAXBDSContext(java.lang.String)">org.apache.axis2.datasource.jaxb.JAXBDSContext(String)</a>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/util/WSDL4JWrapper.html#WSDL4JWrapper(javax.wsdl.Definition)">org.apache.axis2.jaxws.util.WSDL4JWrapper(Definition)</a>
<div class="block"><i>Use WSDL4JWrapper(Definition,ConfigurationContext)</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/util/WSDL4JWrapper.html#WSDL4JWrapper(java.net.URL)">org.apache.axis2.jaxws.util.WSDL4JWrapper(URL)</a>
<div class="block"><i>Use a constructor that passes in the ConfigContext, or memoryLimit parameter</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/util/WSDL4JWrapper.html#WSDL4JWrapper(java.net.URL, javax.wsdl.Definition)">org.apache.axis2.jaxws.util.WSDL4JWrapper(URL, Definition)</a>
<div class="block"><i>Use a constructor that has a ConfigContext or memoryLimit parameter</i></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/util/WSDL4JWrapper.html#WSDL4JWrapper(java.net.URL, javax.wsdl.Definition, org.apache.axis2.jaxws.catalog.JAXWSCatalogManager)">org.apache.axis2.jaxws.util.WSDL4JWrapper(URL, Definition, JAXWSCatalogManager)</a>
<div class="block"><i>Use a constructor with a ConfigurationContext or memory limit setting</i></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="org/apache/axis2/jaxws/util/WSDL4JWrapper.html#WSDL4JWrapper(java.net.URL, org.apache.axis2.jaxws.catalog.JAXWSCatalogManager)">org.apache.axis2.jaxws.util.WSDL4JWrapper(URL, JAXWSCatalogManager)</a>
<div class="block"><i>use a constructor with a ConfigurationContext or limitMemory parameter</i></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.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">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All 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>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &copy; <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>