<!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>Constants (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="Constants (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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Constants.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></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><a href="../../../../org/apache/axis2/jaxws/ClientConfigurationFactory.html" title="class in org.apache.axis2.jaxws"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/axis2/jaxws/ExceptionFactory.html" title="class in org.apache.axis2.jaxws"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/axis2/jaxws/Constants.html" target="_top">Frames</a></li>
<li><a href="Constants.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.axis2.jaxws</div>
<h2 title="Interface Constants" class="title">Interface Constants</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="strong">Constants</span></pre>
<div class="block">Constants that apply to the JAX-WS implementation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#CHECKED_EXCEPTION">CHECKED_EXCEPTION</a></strong></code>
<div class="block">If a checked exception is thrown by the webservice's webmethod, then
 the name of the checked exception is placed in the outbound response context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#DISABLE_ENDPOINT_PUBLISH_METHODS">DISABLE_ENDPOINT_PUBLISH_METHODS</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.endpoint.publish.disable
 Value: String "false" or "true"
 Default: null, which is interpreted as "false"
 Can be set on:
 - Axis Configuration, which affects all jax-ws endpoints

 Indicates if the javax.xml.ws.Endpoint.publish methods should be disabled, throwing an exception if
 they are called.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#DISABLE_SOAPFAULT_FOR_LOCAL_EXCEPTION">DISABLE_SOAPFAULT_FOR_LOCAL_EXCEPTION</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.soapfault.local.exceptions.disable
 Value: String "false" or "true"
 Default: null, which is interpreted as "false"
 Can be set on:
 - Axis Configuration, which affects all jax-ws clients

 Indicates if local exceptions encountered by a JAX-WS client should be turned into a SOAPFaultException
 and then call the appropriate JAX-WS application handlers handleFault()methods with that SOAPFault
 in the message.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#DISPATCH_CLIENT_OUTBOUND_RESOLUTION">DISPATCH_CLIENT_OUTBOUND_RESOLUTION</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.dispatch.outbound.operation.resolution.enable
 Value: String "false" or "true"
 Default: null, which is interpreted as "true"
 Can be set on:
 - Axis Configuration, which affects operation resolution across all Dispatch<T> clients
 - Request message context, which affects only the Dispatch<T> client using that context.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#ENDPOINT_CONTEXT_MAP">ENDPOINT_CONTEXT_MAP</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING">JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING</a></strong></code>
<div class="block"><strong>Deprecated.</strong>&nbsp;
<div class="block"><i>see JAXWS_PAYLOAD_HIGH_FIDELITY</i></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_INBOUND_SOAP_HEADERS">JAXWS_INBOUND_SOAP_HEADERS</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS">JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.jaxb.write.remove.illegal.chars
 Value: Boolean.TRUE or Boolean.FALSE
 Default: null, which is interpreted as FALSE.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_MESSAGE_ACCESSOR">JAXWS_MESSAGE_ACCESSOR</a></strong></code>
<div class="block">javax.xml.ws.handler.MessageContext  Property:
 Name: jaxws.message.as.string
 Value: null or MessageAccessor
 
 Description:
 A handler or resource injection @WebServiceContext may use
 this property to get access to a MessageAccessor object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_OUTBOUND_SOAP_HEADERS">JAXWS_OUTBOUND_SOAP_HEADERS</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_PAYLOAD_HIGH_FIDELITY">JAXWS_PAYLOAD_HIGH_FIDELITY</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.payload.highFidelity
 Value: Boolean.TRUE or Boolean.FALSE
 Default: null, which is interpreted as FALSE....engine may set this to TRUE in some cases.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_PROVIDER_NULL_ONEWAY">JAXWS_PROVIDER_NULL_ONEWAY</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.provider.interpretNullAsOneway
 Value: Boolean.TRUE or Boolean.FALSE
 Default: TRUE.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#JAXWS_WEBMETHOD_EXCEPTION">JAXWS_WEBMETHOD_EXCEPTION</a></strong></code>
<div class="block">If an exception is thrown by the JAXWS webservice's webmethod, the 
 Throwable object is placed in the service outbound response context.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#MEP_CONTEXT">MEP_CONTEXT</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#SOAP_HTTP_BINDING">SOAP_HTTP_BINDING</a></strong></code>
<div class="block">This constant introduces an extension for @BindingType annotation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#THROW_EXCEPTION_IF_SOAP_FAULT">THROW_EXCEPTION_IF_SOAP_FAULT</a></strong></code>
<div class="block">This constant will be used to determine if a Exception will be throw by
 JAX-WS layer when a SOAP Fault is received on response.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#WRITE_HEADER_ELEMENT_IF_NULL">WRITE_HEADER_ELEMENT_IF_NULL</a></strong></code>
<div class="block">Context Property:
 Name: jaxws.header.parameter.isNull.write.element.with.xsi.nil
 Value: Boolean.TRUE or Boolean.FALSE
 Default: null, which is interpretted as Boolean.TRUE
 
 If the @WebParam indicates that the parameter is mapped to a header 
 and the argument for the parameter is null, this property is queried by the
 JAX-WS runtime to determine if 
  a) TRUE: A SOAP header element is serialized with an xsi:nil="true" attribute
  b) FALSE: No SOAP header element is serialized.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/axis2/jaxws/Constants.html#WS_CACHE">WS_CACHE</a></strong></code>
<div class="block">This constant will be used to store the location of JAX-WS generated artifacts cache.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="ENDPOINT_CONTEXT_MAP">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENDPOINT_CONTEXT_MAP</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ENDPOINT_CONTEXT_MAP</pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.ENDPOINT_CONTEXT_MAP">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_OUTBOUND_SOAP_HEADERS">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_OUTBOUND_SOAP_HEADERS</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_OUTBOUND_SOAP_HEADERS</pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_OUTBOUND_SOAP_HEADERS">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_INBOUND_SOAP_HEADERS">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_INBOUND_SOAP_HEADERS</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_INBOUND_SOAP_HEADERS</pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_INBOUND_SOAP_HEADERS">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING</pre>
<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>see JAXWS_PAYLOAD_HIGH_FIDELITY</i></div>
<div class="block">Value that can be set on a MessageContext.  The property value should be a Boolean()
 
 If set to false, then JAXB streaming of the XML body is disabled.
 A value of false will result in slower performance for unmarshalling JAXB objects
 but is a loss-less transformation.  
  
 A value of true will cause the JAXB objects to be created when the XML body is initially 
 parsed, which is more performant, but it may loose some information contained in the 
 original XML such as namespace prefixes if the XML stream is recreated from the JAXB 
 objects.
 
 The default value is Boolean(true) if this property is not set.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_PAYLOAD_HIGH_FIDELITY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_PAYLOAD_HIGH_FIDELITY</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_PAYLOAD_HIGH_FIDELITY</pre>
<div class="block">Context Property:
 Name: jaxws.payload.highFidelity
 Value: Boolean.TRUE or Boolean.FALSE
 Default: null, which is interpreted as FALSE....engine may set this to TRUE in some cases.
 
 Configuration Parameter
 Name: jaxws.payload.highFidelity
 Value: String or Boolean representing true or false
 Default: null, which is interpreted as FALSE
 
 Description:
 If the value is false, the jax-ws engine will transform the message in the most
 performant manner.  In some cases these transformations will cause the loss of some information.
 For example, JAX-B transformations are lossy.  
 
 If the value is true, the jax-ws engine will transform the message in the most loss-less manner.
 In some cases this will result in slower performance.  The message in such cases is "high fidelity",
 which means that it is a close replica of the original message.
 
 Customers should accept the default behavior (false), and only set the value to true if it is
 necessary for a SOAP Handler or other code requires a high fidelity message.
 
 The engine will first examine the Context property.  If not set, the value of the Configuration
 property is used.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_PAYLOAD_HIGH_FIDELITY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_PROVIDER_NULL_ONEWAY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_PROVIDER_NULL_ONEWAY</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_PROVIDER_NULL_ONEWAY</pre>
<div class="block">Context Property:
 Name: jaxws.provider.interpretNullAsOneway
 Value: Boolean.TRUE or Boolean.FALSE
 Default: TRUE.
 
 Configuration Parameter
 Name: jaxws.provider.interpretNullAsOneway
 Value: String or Boolean representing true or false
 Default: true
 
 Description:
 If the value is false, the jax-ws engine will interpret a null response from a provider as an empty
 response to a two-way operation.  As a result it will create a SOAPEnvelope with an empty SOAPBody and send that
 as a response.
 
 If the value is true, the jax-ws engine will intrepret a null return value from a provider as an indication of 
 a one-way operation.  As a result, the engine will halt processing on the response.  Response handlers will not
 be invoked.  An HTTP acknowledgment will be sent back to the client.  No SOAPEnvelope will be sent.  You must use
 one-way client when invoking a Provider which returns null if this property is true.
 
 This is only true for operations which are not defined in WSDL.  If the operation is defined in WSDL, the WSDL
 determine the response for a Provider that returns null.  If the WSDL defines a two-way operation, a null
 from a provider will continue to produce a SOAPEnvelope with and empty SOAPBody as the response.
 
 The engine will first examine the Context property.  If not set, the value of the Configuration
 property is used.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_PROVIDER_NULL_ONEWAY">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="MEP_CONTEXT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEP_CONTEXT</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> MEP_CONTEXT</pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.MEP_CONTEXT">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="CHECKED_EXCEPTION">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHECKED_EXCEPTION</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CHECKED_EXCEPTION</pre>
<div class="block">If a checked exception is thrown by the webservice's webmethod, then
 the name of the checked exception is placed in the outbound response context.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.CHECKED_EXCEPTION">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_WEBMETHOD_EXCEPTION">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_WEBMETHOD_EXCEPTION</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_WEBMETHOD_EXCEPTION</pre>
<div class="block">If an exception is thrown by the JAXWS webservice's webmethod, the 
 Throwable object is placed in the service outbound response context.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_WEBMETHOD_EXCEPTION">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SOAP_HTTP_BINDING">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SOAP_HTTP_BINDING</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SOAP_HTTP_BINDING</pre>
<div class="block">This constant introduces an extension for @BindingType annotation.
 When the value of BindingType annotation is set to this constant,
 the javax.xml.ws.Provider java endpoints will cater to SOAP11 and SOAP12
 messages.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.SOAP_HTTP_BINDING">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="THROW_EXCEPTION_IF_SOAP_FAULT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>THROW_EXCEPTION_IF_SOAP_FAULT</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> THROW_EXCEPTION_IF_SOAP_FAULT</pre>
<div class="block">This constant will be used to determine if a Exception will be throw by
 JAX-WS layer when a SOAP Fault is received on response.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.THROW_EXCEPTION_IF_SOAP_FAULT">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="WRITE_HEADER_ELEMENT_IF_NULL">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WRITE_HEADER_ELEMENT_IF_NULL</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> WRITE_HEADER_ELEMENT_IF_NULL</pre>
<div class="block">Context Property:
 Name: jaxws.header.parameter.isNull.write.element.with.xsi.nil
 Value: Boolean.TRUE or Boolean.FALSE
 Default: null, which is interpretted as Boolean.TRUE
 
 If the @WebParam indicates that the parameter is mapped to a header 
 and the argument for the parameter is null, this property is queried by the
 JAX-WS runtime to determine if 
  a) TRUE: A SOAP header element is serialized with an xsi:nil="true" attribute
  b) FALSE: No SOAP header element is serialized.
  
  The default is TRUE because the JAX-WS developers feel that this is a safer
  approach.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.WRITE_HEADER_ELEMENT_IF_NULL">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="WS_CACHE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WS_CACHE</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> WS_CACHE</pre>
<div class="block">This constant will be used to store the location of JAX-WS generated artifacts cache.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.WS_CACHE">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS</pre>
<div class="block">Context Property:
 Name: jaxws.jaxb.write.remove.illegal.chars
 Value: Boolean.TRUE or Boolean.FALSE
 Default: null, which is interpreted as FALSE.
 
 Configuration Parameter
 Name: jaxws.jaxb.write.remove.illegal.chars
 Value: String or Boolean representing true or false
 Default: null, which is interpreted as FALSE
 
 Description:
 If the value is true, the jax-ws engine will detect and remove
 illegal characters (characters not supported in xml) when writing
 a JAXB data bean associated with a jaxws web method
  http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Char
 This extra filter may degrade performance.
 
 Customers should accept the default behavior (false), and only set the value to true if the
 character data produced by their web service is invalid and cannot be filtered by some
 other mechanism.
 
 The engine will first examine the Context property.  If not set, the value of the Configuration
 property is used.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="JAXWS_MESSAGE_ACCESSOR">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JAXWS_MESSAGE_ACCESSOR</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> JAXWS_MESSAGE_ACCESSOR</pre>
<div class="block">javax.xml.ws.handler.MessageContext  Property:
 Name: jaxws.message.as.string
 Value: null or MessageAccessor
 
 Description:
 A handler or resource injection @WebServiceContext may use
 this property to get access to a MessageAccessor object.
 The MessageAccessor contains methods to allow a user to 
 get additional attributes from the message (for example getMessageAsString)</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.JAXWS_MESSAGE_ACCESSOR">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DISPATCH_CLIENT_OUTBOUND_RESOLUTION">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISPATCH_CLIENT_OUTBOUND_RESOLUTION</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DISPATCH_CLIENT_OUTBOUND_RESOLUTION</pre>
<div class="block">Context Property:
 Name: jaxws.dispatch.outbound.operation.resolution.enable
 Value: String "false" or "true"
 Default: null, which is interpreted as "true"
 Can be set on:
 - Axis Configuration, which affects operation resolution across all Dispatch<T> clients
 - Request message context, which affects only the Dispatch<T> client using that context.

 Indicates if a Dispatch<T> message should be parsed to determine the operation indicated in the
 message, and use that to determine the Action that should be placed in the outgoing message.  The
 Action would be placed in the SOAPAction HTTP header and any WS-Addressing Action headers if 
 WS-Addressing is enabled.  Prior to the introduction of this property and associated support, 
 for Dispatch<T> the client would have to set the Action on the Request Message context in order to 
 get a meaningful value set as the Action.
 
 Note that parsing the outgoing message in order to determine the operation indicated in the
 message can be slow.  Therefore, this property is provided to disable that operation resolution.
 The default, however, is to do operation resolution.
 
 Operation resolution will also be disabled on a Dispatch<T> client if an Action was set on the 
 request message context.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="http://docs.oracle.com/javaee/5/api/javax/xml/ws/BindingProvider.SOAPACTION_USE_PROPERTY.html?is-external=true" title="class or interface in javax.xml.ws"><code>BindingProvider.SOAPACTION_USE_PROPERTY</code></a>, 
<a href="http://docs.oracle.com/javaee/5/api/javax/xml/ws/BindingProvider.SOAPACTION_URI_PROPERTY.html?is-external=true" title="class or interface in javax.xml.ws"><code>BindingProvider.SOAPACTION_URI_PROPERTY</code></a>, 
<a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DISABLE_SOAPFAULT_FOR_LOCAL_EXCEPTION">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DISABLE_SOAPFAULT_FOR_LOCAL_EXCEPTION</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DISABLE_SOAPFAULT_FOR_LOCAL_EXCEPTION</pre>
<div class="block">Context Property:
 Name: jaxws.soapfault.local.exceptions.disable
 Value: String "false" or "true"
 Default: null, which is interpreted as "false"
 Can be set on:
 - Axis Configuration, which affects all jax-ws clients

 Indicates if local exceptions encountered by a JAX-WS client should be turned into a SOAPFaultException
 and then call the appropriate JAX-WS application handlers handleFault()methods with that SOAPFault
 in the message.  This is new behavior, which is the default behavior indicated by this property not being
 set or having a value of "false".
 
 The previous behavior was for local exceptions to be turned into a WebServiceException that was set
 on an empty response message.  The appropriate JAX-WS application handers handleMessage() methods would be
 called with that empty message.  Setting this property to "true" will revert to this behavior.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.DISABLE_SOAPFAULT_FOR_LOCAL_EXCEPTION">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DISABLE_ENDPOINT_PUBLISH_METHODS">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DISABLE_ENDPOINT_PUBLISH_METHODS</h4>
<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DISABLE_ENDPOINT_PUBLISH_METHODS</pre>
<div class="block">Context Property:
 Name: jaxws.endpoint.publish.disable
 Value: String "false" or "true"
 Default: null, which is interpreted as "false"
 Can be set on:
 - Axis Configuration, which affects all jax-ws endpoints

 Indicates if the javax.xml.ws.Endpoint.publish methods should be disabled, throwing an exception if
 they are called.  This may be necessary in a managed environment, since as noted in JSR-109 section
 5.3.3 "Publishing Endpoints" using publish is non-portable in managed environments, and managed 
 environments may disallow publishing of endpoints dynamciall.
 
 If this property is set, the Endpoint.publish methods will throw an UnsupportedOperationException.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.axis2.jaxws.Constants.DISABLE_ENDPOINT_PUBLISH_METHODS">Constant Field Values</a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= 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><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Constants.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></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><a href="../../../../org/apache/axis2/jaxws/ClientConfigurationFactory.html" title="class in org.apache.axis2.jaxws"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/axis2/jaxws/ExceptionFactory.html" title="class in org.apache.axis2.jaxws"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/axis2/jaxws/Constants.html" target="_top">Frames</a></li>
<li><a href="Constants.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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</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>