Modified: websites/production/cxf/content/docs/aegis-databinding-20x.html
==============================================================================
--- websites/production/cxf/content/docs/aegis-databinding-20x.html (original)
+++ websites/production/cxf/content/docs/aegis-databinding-20x.html Tue Sep 12 
19:09:41 2017
@@ -32,8 +32,9 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
+<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -141,7 +142,7 @@ Apache CXF -- Aegis Databinding (2.0.x)
 <p>Most people who use Aegis use the 'Simple' front end. </p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;simple:server id="pojoservice" serviceClass="demo.hw.server.HelloWorld" 
address="/hello_world"&gt;
   &lt;simple:serviceBean&gt;
     &lt;bean class="demo.hw.server.HelloWorldImpl" /&gt;
@@ -165,7 +166,7 @@ Apache CXF -- Aegis Databinding (2.0.x)
 <p>You can also use Aegis with JAX-WS. Here's a Spring configuration example 
for that.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;bean id="aegisBean" 
class="org.apache.cxf.aegis.databinding.AegisDatabinding" 
scope="prototype"/&gt; 
 &lt;bean id="jaxws-and-aegis-service-factory"
   class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"
@@ -204,7 +205,7 @@ Apache CXF -- Aegis Databinding (2.0.x)
 <p>Here's a Java configuration using the Simple front end. </p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 import org.apache.cxf.aegis.databinding.AegisDatabinding;
 import org.apache.cxf.frontend.ServerFactoryBean;
 
@@ -220,7 +221,7 @@ sf.create();
 parameters names from Java reflection. As always, Java interfaces don't carry 
parameter names, and this results in names like 'arg0', 'arg1', etc, which 
don't match the service.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 import org.apache.cxf.aegis.databinding.AegisDatabinding;
 import org.apache.cxf.frontend.ClientProxyFactoryBean;
 
@@ -240,7 +241,7 @@ If you need to interoperate with XFire,
 an additional service configuration class to your service configuration: 
XFireCompatibilityServiceConfiguration (in 2.0.x, AegisServiceConfiguration). 
<br clear="none">
 The spring example above shows the necessary configuration in a comment. For 
the client side in Java, you need to add the service configuration to the 
service factory as follows:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 import org.apache.cxf.aegis.databinding.AegisServiceConfiguration;
 // for 2.0.x
 sf.getServiceFactory().getServiceConfigurations().add(0, new 
AegisServiceConfiguration());
@@ -258,7 +259,7 @@ sf.getServiceFactory().getServiceConfigu
 
 <p>Fore example, the java class:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 public class Employee
 {
   private String name;
@@ -274,7 +275,7 @@ public class Employee
 </div></div>
 <p>In XML this translates to:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;Employee xmlns="http://xfire.codehaus.org"&gt;
   &lt;name&gt;Santa Claus&lt;/name&gt;
   &lt;title&gt;Chief Present Officer (CPO)&lt;/title&gt;
@@ -283,7 +284,7 @@ public class Employee
 </div></div>
 <p>In XML Schema this would become a complex type:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;xsd:complexType name="Employee"&gt;
   &lt;xsd:sequence&gt;
     &lt;xsd:element name="name" type="xsd:string" minOccurs="0" 
maxOccurs="1/&gt;
@@ -309,7 +310,7 @@ public class Employee
 <p>If you have many properties, and you want most, or all of them, to have a 
minOccurs other than 0 or a nillable other than <strong>false</strong>, you can 
change the defaults for Aegis from Java code (amongst other places).<br 
clear="none">
 Here is an example: it extracts the binding provider from the service factory, 
and changes the configuration parameters.</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 ServerFactoryBean sf = new ServerFactoryBean();
 sf.setServiceClass(serviceClass);
 sf.setAddress("http://myhost/service";);

Modified: websites/production/cxf/content/docs/aegis-mapping-files.html
==============================================================================
--- websites/production/cxf/content/docs/aegis-mapping-files.html (original)
+++ websites/production/cxf/content/docs/aegis-mapping-files.html Tue Sep 12 
19:09:41 2017
@@ -32,8 +32,9 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
+<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -123,7 +124,7 @@ Apache CXF -- Aegis Mapping Files
 
 <p>Mapping files must exist in the same package as your bean or service class 
on the class path. In the above example the mapping file  would be named 
"/org/codehaus/xfire/Employee.aegis.xml", with the following format:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;mappings&gt;
   &lt;mapping uri="" name=""&gt;
     &lt;method name="methodName"&gt;
@@ -144,7 +145,7 @@ Apache CXF -- Aegis Mapping Files
 
 <p>Lets pretend that in the above example you would like the elements names to 
be capatilized and in the namespace "urn:north-pole:operations".  You could 
achieve this through a mapping file like so:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;mappings xmlns:np="urn:north-pole:operations"&gt;
   &lt;mapping name="np:Employee"&gt;
     &lt;property name="name" mappedName="Name"/&gt;
@@ -157,7 +158,7 @@ Apache CXF -- Aegis Mapping Files
 
 <p>This will result in a mapping like so:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;np:Employee xmlns:np="urn:north-pole:operations"&gt;
   &lt;np:Name&gt;Santa Claus&lt;/np:Name&gt;
   &lt;np:Title&gt;Chief Present Officer (CPO)&lt;/np:Title&gt;
@@ -169,7 +170,7 @@ Apache CXF -- Aegis Mapping Files
 
 <p>If you don't want to serialize a certain property it is easy to ignore 
it:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;mappings&gt;
   &lt;mapping&gt;
     &lt;property name="propertyName" ignore="true"/&gt;
@@ -182,7 +183,7 @@ Apache CXF -- Aegis Mapping Files
 
 <p>The default Aegis mapping is to assume that, since any Java object can be 
<strong>null</strong>, that the corresponding schema elements should have 
minOccurs of 0 and nillable of true. There are properties on the mappings for 
to control this.</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;mappings&gt;
   &lt;mapping&gt;
     &lt;property name='everpresentProperty' minOccurs='1' nillable='false'/&gt;
@@ -196,7 +197,7 @@ Apache CXF -- Aegis Mapping Files
 <p>In order to make use of the various types that Aegis provides in the 
"org.apache.cxf.aegis.type.basic" package, follow this example which allows the 
wsdl to use the "xsd:date" instead of the "xsd:dateTime".</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;mappings xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
        &lt;mapping&gt;
                &lt;property name="birthDate" 

Modified: websites/production/cxf/content/docs/annotated-aegis-file-schema.html
==============================================================================
--- websites/production/cxf/content/docs/annotated-aegis-file-schema.html 
(original)
+++ websites/production/cxf/content/docs/annotated-aegis-file-schema.html Tue 
Sep 12 19:09:41 2017
@@ -117,7 +117,7 @@ Apache CXF -- Annotated Aegis File Schem
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
 &lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;!--
   Licensed to the Apache Software Foundation (ASF) under one

Modified: websites/production/cxf/content/docs/annotations.html
==============================================================================
--- websites/production/cxf/content/docs/annotations.html (original)
+++ websites/production/cxf/content/docs/annotations.html Tue Sep 12 19:09:41 
2017
@@ -32,6 +32,7 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
+<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
@@ -117,7 +118,7 @@ Apache CXF -- Annotations
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p>CXF provides several custom annotations that 
can be used to configure and customize the CXF runtime.</p><h3 
id="Annotations-org.apache.cxf.feature.Features">org.apache.cxf.feature.Features</h3><p>The
 @Features annotation is used to add <a shape="rect" 
href="features.html">Features</a>. See the <a shape="rect" 
href="featureslist.html">FeaturesList</a> for the list of Features we provide 
"out of the box", but you can easily create your own. In many cases, however, 
those features have Annotations themselves which can be used and provide 
greater control over configuration.</p><h3 
id="Annotations-org.apache.cxf.interceptor.InInterceptors,org.apache.cxf.interceptor.OutInterceptors,org.apache.cxf.interceptor.OutFaultInterceptors,org.apache.cxf.interceptor.InFaultInterceptors">org.apache.cxf.interceptor.InInterceptors,
 <br clear="none" class="atl-forced-newline"> 
org.apache.cxf.interceptor.OutInterceptors, <br clear="none" 
class="atl-forced-newline"> org.apach
 e.cxf.interceptor.OutFaultInterceptors, <br clear="none" 
class="atl-forced-newline"> 
org.apache.cxf.interceptor.InFaultInterceptors</h3><p>Add interceptors to the 
various chains used to process messages. See <a shape="rect" 
href="interceptors.html">Interceptors</a> for more detail.</p><p><span 
class="confluence-anchor-link" 
id="Annotations-WSDLDocumentation"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.WSDLDocumentationorg.apache.cxf.annotations.WSDLDocumentationCollection(since2.3)">org.apache.cxf.annotations.WSDLDocumentation
 <br clear="none" class="atl-forced-newline"> 
org.apache.cxf.annotations.WSDLDocumentationCollection (since 2.3)</h3><p>For 
"java first" scenarios where the WSDL is derived from the Java interfaces/code, 
these annotations allow adding wsd:documentation elements to various locations 
in the generated wsdl.</p><p>For example:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@WebService
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">@WebService
 @WSDLDocumentationCollection(
     {
         @WSDLDocumentation("My portType documentation"),
@@ -135,7 +136,7 @@ public interface MyService {
 }
 </pre>
 </div></div><p><span class="confluence-anchor-link" 
id="Annotations-SchemaValidation"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.SchemaValidation(since2.3)">org.apache.cxf.annotations.SchemaValidation
 (since 2.3)</h3><p>Turns on SchemaValidation for messages. By default, for 
performance reasons, CXF does not validate message against the schema. By 
turning on validation, problems with messages not matching the schema are 
easier to determine.&#160;&#160; These annotations can be applied globally to 
the SEI, but also can be applied at method level in both the SEI and 
Implementation.</p><p>&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">IN</td><td colspan="1" rowspan="1" 
class="confluenceTd">Apply schema validation to INcoming messages on client and 
server</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">REQUEST</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>(Since 2.7.
 14, 3.0.3, 3.1</strong>) Apply schema validation to Request messages.&#160; 
This annotation will cause validation to be applied to OUTgoing Client 
messages, and INcoming Server messages.</td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">OUT</td><td colspan="1" rowspan="1" 
class="confluenceTd">Apply schema validation to OUTgoing messages on Client and 
Server</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">RESPONSE</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>(Since 2.7.14, 3.0.3, 3.1)</strong> Apply schema 
validation to Response messages.&#160; This annotation will cause validation to 
be applied to INcoming Client messages, and OUTgoing Server 
messages.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">BOTH</td><td colspan="1" rowspan="1" 
class="confluenceTd">Apply schema validation to both INcoming and OUTgoing 
messages on Client and Server</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">NONE</td><td colspan="1" row
 span="1" class="confluenceTd">All schema validation is 
disabled.</td></tr></tbody></table></div><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@WebService
+<pre class="brush: java; gutter: false; theme: Confluence" 
style="font-size:12px;">@WebService
 @SchemaValidation(type = SchemaValidationType.BOTH)
 public interface MyService {
     Foo validateBoth(Bar data);
@@ -156,7 +157,7 @@ public interface MyService {
     Foo validateResponse(Bar data);
 }</pre>
 </div></div><p>&#160;</p><p><span class="confluence-anchor-link" 
id="Annotations-DataBinding"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.DataBinding(since2.2.4)">org.apache.cxf.annotations.DataBinding
 (since 2.2.4)</h3><p>Sets the DataBinding class that is associated with the 
service. By default, CXF assumes you are using the JAXB data binding. However, 
CXF supports different databindings such as XMLBeans, Aegis, SDO, and possibly 
more. This annotation can be used in place of configuration to select the 
databinding class.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@DataBinding(org.apache.cxf.sdo.SDODataBinding.class)
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">@DataBinding(org.apache.cxf.sdo.SDODataBinding.class)
 public interface MyService {
     public commonj.sdo.DataObject echoStruct(
         commonj.sdo.DataObject struct
@@ -164,7 +165,7 @@ public interface MyService {
 }
 </pre>
 </div></div><p><span class="confluence-anchor-link" 
id="Annotations-Logging"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.Logging(since2.3)">org.apache.cxf.annotations.Logging
 (since 2.3)</h3><p>Turns on logging for the endpoint. Can be used to control 
the size limits of what gets logged as well as the location. It supports the 
following attributes:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>limit</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Sets the size limit after which the message is 
truncated in the logs. Default is 64K</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>inLocation</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets the location to log incoming messages. 
Can be &lt;stderr&gt;, &lt;stdout&gt;, &lt;logger&gt;, or a file: URL. Default 
is &lt;logger&gt;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>outLocatio
 n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sets the 
location to log outgoing messages. Can be &lt;stderr&gt;, &lt;stdout&gt;, 
&lt;logger&gt;, or a file: URL. Default is 
&lt;logger&gt;</p></td></tr></tbody></table></div><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@Logging(limit=16000, inLocation="&lt;stdout&gt;")
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">@Logging(limit=16000, inLocation="&lt;stdout&gt;")
 public interface MyService {
 
     String echoString(String s);
@@ -172,7 +173,7 @@ public interface MyService {
 }
 </pre>
 </div></div><p><span class="confluence-anchor-link" 
id="Annotations-GZIP"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.GZIP(since2.3)">org.apache.cxf.annotations.GZIP
 (since 2.3)</h3><p>Enables GZIP compression of on-the-wire data. Supported 
attributes:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>threshold</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>the threshold under which messages are not 
gzipped</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>force</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>force GZIP compression instead of negotiating via the 
Accept-Encoding header</p></td></tr></tbody></table></div><p>GZIP is a 
negotiated enhancement. An initial request from a client will not be gzipped, 
but an Accept header will be added and if the server supports it, the response 
will be gzipped and any subsequent requests will be.</p><p><span class=
 "confluence-anchor-link" id="Annotations-FastInfoset"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.FastInfoset(since2.3)">org.apache.cxf.annotations.FastInfoset
 (since 2.3)</h3><p>Enables FastInfoset of on-the-wire data. Supported 
attributes:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>force</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>forces the use of fastinfoset instead of negotiating. 
Default is false</p></td></tr></tbody></table></div><p>FastInfoset is a 
negotiated enhancement. An initial request from a client will not be in 
fastinfoset, but an Accept header will be added and if the server supports it, 
the response will be in fastinfoset and any subsequent requests will 
be.</p><p><span class="confluence-anchor-link" 
id="Annotations-EndpointProperty"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.EndpointPropertyorg.apache.cxf.annotations.EndpointProperties(since2.
 3)">org.apache.cxf.annotations.EndpointProperty <br clear="none" 
class="atl-forced-newline"> org.apache.cxf.annotations.EndpointProperties 
(since 2.3)</h3><p>Adds a property to an endpoint. Many things such as 
WS-Security related things and such can be configured via endpoint properties. 
Traditionally, these would be set via the &lt;jaxws:properties&gt; element on 
the &lt;jaxws:endpoint&gt; element in the spring config, but these annotations 
allow these properties to be configured into the code.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@WebService
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">@WebService
 @EndpointProperties(
     {
        @EndpointProperty(key = "my.property", value="some value"),
@@ -183,7 +184,7 @@ public interface MyService {
 }
 </pre>
 </div></div><p><span class="confluence-anchor-link" 
id="Annotations-Policy"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.Policyorg.apache.cxf.annotations.Policies(since2.3)">org.apache.cxf.annotations.Policy
 <br clear="none" class="atl-forced-newline"> 
org.apache.cxf.annotations.Policies (since 2.3)</h3><p>Used to attach WS-Policy 
fragments to a service or operation. The Policy supports the 
attributes:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>uri</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>REQUIRED</strong> the location of the file 
containing the Policy definition</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>includeInWSDL</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Whether to include the policy in the generated WSDL 
when generating a wsdl. Default is true</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>place
 ment</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specify where 
to place the policy</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>faultClass</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>if placement is a FAULT, this specifies which fault the 
policy would apply to</p></td></tr></tbody></table></div><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using a custom Spring 
configuration, you need to import 
META-INF/cxf/cxf-extension-policy.xml</p></div></div><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@Policies({
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">@Policies({
     @Policy(uri = "annotationpolicies/TestInterfacePolicy.xml"),
     @Policy(uri = "annotationpolicies/TestImplPolicy.xml",
             placement = Policy.Placement.SERVICE_PORT),
@@ -212,7 +213,7 @@ public static interface TestInterface {
 
 </pre>
 </div></div><p><span class="confluence-anchor-link" 
id="Annotations-Policy"></span></p><h3 
id="Annotations-org.apache.cxf.annotations.UseAsyncMethod(since2.6.0)">org.apache.cxf.annotations.UseAsyncMethod
 (since 2.6.0)</h3><p>Used on the JAX-WS service implementation object to mark 
a method as preferring the 'async' version of the method instead of the 
synchronous version. With JAX-WS, services default to the synchronous methods 
that require the returning value to be returned from the method. By marking a 
method with the @UseAsyncMethod annotation, if the transport supports it, CXF 
will call the async version that takes an AsynHandler object and the service 
can call that handler when the response is ready. If the transport does not 
support the CXF continuations, the synchronous method will be called as 
normal.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    @UseAsyncMethod
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">    @UseAsyncMethod
     public String greetMeSometime(String me) {
         LOG.info("Executing operation greetMeSometime synchronously");
         System.out.println("Executing operation greetMeSometime 
synchronously\n");

Modified: 
websites/production/cxf/content/docs/application-server-specific-configuration-guide.html
==============================================================================
--- 
websites/production/cxf/content/docs/application-server-specific-configuration-guide.html
 (original)
+++ 
websites/production/cxf/content/docs/application-server-specific-configuration-guide.html
 Tue Sep 12 19:09:41 2017
@@ -32,8 +32,9 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
+<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script src='/resources/highlighter/scripts/shBrushXml.js'></script>
+<script src='/resources/highlighter/scripts/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -118,11 +119,11 @@ Apache CXF -- Application Server Specifi
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p>This document provides app server-specific 
configuration information for running Apache CXF.</p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1467902807657 {padding: 0px;}
-div.rbtoc1467902807657 ul {list-style: disc;margin-left: 0px;padding-left: 
20px;}
-div.rbtoc1467902807657 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1505242914039 {padding: 0px;}
+div.rbtoc1505242914039 ul {list-style: disc;margin-left: 0px;padding-left: 
20px;}
+div.rbtoc1505242914039 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1467902807657">
+/*]]>*/</style></p><div class="toc-macro rbtoc1505242914039">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-JBossApplicationServer">JBoss
 Application Server</a></li><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-SpringBoot">SpringBoot</a></li><li><a
 shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-WebLogic">WebLogic</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-Putjarsinendorsedfolder">Put 
jars in endorsed folder</a></li><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-Packwarinanear,deploytheearwithweblogic-application.xml">Pack
 war in an ear, deploy the ear with weblogic-application.xml</a></li></ul>
 </li><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-Websphere">Websphere</a>
@@ -139,7 +140,7 @@ div.rbtoc1467902807657 li {margin-left:
 </li></ul>
 </li><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-IntegrationwithApplicationServerFAQ">Integration
 with Application Server FAQ</a></li><li><a shape="rect" 
href="#ApplicationServerSpecificConfigurationGuide-Resources">Resources</a></li></ul>
 </div><h2 
id="ApplicationServerSpecificConfigurationGuide-JBossApplicationServer">JBoss 
Application Server</h2><p>JBoss Application Server (JBoss AS) comes with its 
own webservices stack (JBossWS) in order for providing full JavaEE support.<br 
clear="none"> Starting from JBoss AS 6 M4, the default webservices stack is 
internally based on Apache CXF; as a consequence users might experiment 
classloading issues with classes from both the CXF libraries and its 
dependencies if included in deployments and not properly isolated. Please refer 
to the relevant JBoss AS documentation for details on how to turn on 
classloading isolation on the application server version in use.</p><p>In 
particular, when willing to run Apache CXF based applications on top of JBoss 
AS 7 series, users have basically two options:</p><ul><li><p>use JBoss AS as if 
it was a servlet container with no WS functionalities: this basically implies 
disabling the webservices subsystem for the user deployment, hence preventing
  the AS webservices stack from processing the ws endpoint deployment and 
letting the CXF libs included in the archive deal with any WS invocations when 
CXFServlet is hit; the webservices subsystem is turned off by adding a 
jboss-deployment-structure.xml as follows to the ws endpoint 
deployment:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;jboss-deployment-structure 
xmlns="urn:jboss:deployment-structure:1.2"&gt;
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;jboss-deployment-structure 
xmlns="urn:jboss:deployment-structure:1.2"&gt;
     &lt;deployment&gt;
         &lt;exclude-subsystems&gt;
             &lt;subsystem name="webservices" /&gt;
@@ -148,7 +149,7 @@ div.rbtoc1467902807657 li {margin-left:
 &lt;/jboss-deployment-structure&gt;
 </pre>
 </div></div><p>this approach offers the fastest route to deploying CXF apps on 
JBoss AS; the drawback is that no special ws integration with JBoss AS 
internals is available</p></li></ul><ul><li>rely on JBossWS integration and the 
Apache CXF libraries included in the application server (<a shape="rect" 
class="external-link" 
href="https://docs.jboss.org/author/display/AS71/Webservices+reference+guide"; 
rel="nofollow">documentation</a>): this implies removing any Apache CXF libs 
from the ws deployment as well as any other dependencies which is already 
included in JBoss AS (including any Java EE API jar); if included, the optional 
web.xml descriptor is to be rewritten according to JBossWS convention (see <a 
shape="rect" class="external-link" 
href="https://docs.jboss.org/author/display/AS71/JAX-WS+User+Guide"; 
rel="nofollow">documentation</a>); the Spring support is optional in JBoss AS 
and Spring based endpoint declaration is not the default/preferred 
configuration approach for ws endpoin
 ts, hence users willing to declare endpoints using Spring needs to create a 
org.springframework.spring module and put their endpoint declarations in a 
jbossws-cxf.xml descriptor; if the user application makes use of any lib 
besides tha JavaEE api, proper module <a shape="rect" class="external-link" 
href="https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7"; 
rel="nofollow">dependencies</a> are to be declared either using the 
jboss-deployment-structure.xml descriptor or the archive MANIFEST.MF (few 
directions on ws modules available <a shape="rect" class="external-link" 
href="https://docs.jboss.org/author/display/AS71/JBoss+Modules+and+WS+applications";
 rel="nofollow">here</a>)</li></ul><p>The second approach allows leveraging the 
full JavaEE 6 stack (including e.g. JSR-109) as well as specific ws integration 
with JBoss AS internals.</p><h2 
id="ApplicationServerSpecificConfigurationGuide-SpringBoot">SpringBoot</h2><p>Please
 see CXF <a shape="rect" href="springboot.html">Spri
 ngBoot</a> documentation.</p><p>JAX-WS: see&#160;<a shape="rect" 
class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jaxws_spring_boot";
 rel="nofollow">JAX-WS Spring Boot</a>&#160;demo.</p><p>JAX-RS: 
&#160;see&#160;<a shape="rect" class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot";
 rel="nofollow">JAX-RS Spring Boot</a>&#160;and&#160;<a shape="rect" 
class="external-link" 
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan";
 rel="nofollow">JAX-RS Spring Boot Scan</a>&#160;demos.</p><h2 
id="ApplicationServerSpecificConfigurationGuide-WebLogic">WebLogic</h2><p>There 
are two ways to deploy a CXF WAR archive in WebLogic. (<strong>Note: This has 
been validated on WebLogic9.2.</strong>)</p><h4 
id="ApplicationServerSpecificConfigurationGuide-Putjarsinendorsedfolder">Put 
jars in endorsed folder</h4><ul><li>P
 ut the geronimo-ws-metadata_2.0_spec-1.1.1.jar in the 
$Weblogic_Home/jdk_../jre/lib/endorsed folder.</li><li>Deploy the CXF war in 
weblogic.<br clear="none"> (This way is not recommended, since it might break 
the application server itself. The method below is preferred, as it impacts a 
single module only.)</li></ul><h4 
id="ApplicationServerSpecificConfigurationGuide-Packwarinanear,deploytheearwithweblogic-application.xml">Pack
 war in an ear, deploy the ear with 
weblogic-application.xml</h4><ul><li><p>Create a standard J2EE application.xml 
file in the META-INF folder. (Take $CXF_HOME/samples/java_first_spring_support 
for example)</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;!DOCTYPE application PUBLIC
                "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
                "http://java.sun.com/dtd/application_1_3.dtd"&gt;
@@ -163,7 +164,7 @@ div.rbtoc1467902807657 li {margin-left:
 &lt;/application&gt;
 </pre>
 </div></div></li></ul><ul><li><p>Create a weblogic-application.xml (Weblogic 
specific) in the META-INF folder.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;weblogic-application xmlns="http://www.bea.com/ns/weblogic/90"&gt;
        &lt;application-param&gt;
                &lt;param-name&gt;webapp.encoding.default&lt;/param-name&gt;
@@ -175,7 +176,7 @@ div.rbtoc1467902807657 li {margin-left:
 &lt;/weblogic-application&gt;
 </pre>
 </div></div></li></ul><p>The prefer-application-packages element you see above 
sets up WebLogic's <a shape="rect" class="external-link" 
href="http://e-docs.bea.com/wls/docs100/programming/classloading.html#wp1097187";
 rel="nofollow">Filtering Classloader</a>. Each class whose package matches one 
of the package-name elements listed will be searched for first within the EAR 
before relying on the WebLogic system classloader's version. If a package for a 
particular class is not listed here, WebLogic will try to load its own 
(possibly older) version first, so if you are getting deployment errors due to 
any particular class you might wish to add its package here.</p><p>Also note 
you can, and may need to, specify other options in the weblogic-application.xml 
file such as XML processing factories as shown <a shape="rect" 
class="external-link" 
href="http://cxf.547215.n5.nabble.com/Getting-error-while-deploying-on-weblogic-9-2-but-able-to-do-in-tomcat-td554060.html#a554061";
 rel="nofollow">here
 </a>. See the WebLogic <a shape="rect" class="external-link" 
href="http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/app_xml.html#wp1064995";
 rel="nofollow">guide</a> for more information.</p><ul><li>Run "jar cvf ..." 
command to create the ear and then deploy it. Alternatively, this <a 
shape="rect" class="external-link" 
href="http://www.jroller.com/gmazza/entry/deploying_webservices_on_weblogic"; 
rel="nofollow">blog entry</a> provides a Mavenized method of building the 
EAR.</li></ul><h2 
id="ApplicationServerSpecificConfigurationGuide-Websphere">Websphere</h2><h3 
id="ApplicationServerSpecificConfigurationGuide-ForWebSphereVersions&lt;6.1.0.29">For
 WebSphere Versions &lt; 6.1.0.29</h3><p>Adding jars to the 'endorsed' folder 
appears to be the main solution:</p><h4 
id="ApplicationServerSpecificConfigurationGuide-NoWebServicesFeaturePackforWebSphereinstalled">No
 Web Services Feature Pack for WebSphere installed</h4><h5 
id="ApplicationServerSpecificConfigurationGuide-putj
 arintheendorsedfolder">put jar in the endorsed folder</h5><ul><li>put the 
wsdl4j-1.6.1.jar in the $WebSphere_HOME/java/jre/lib/endorsed 
folder.</li><li>In the WebSphere console, find the specific enterprise 
application, click the "Class loading and update detection".<ul><li>Mark the 
"Classes loaded with application class loader first" selected.</li><li>Mark the 
"Class loader for each war file in application" 
selected.</li></ul></li></ul><p>And then restart the Websphere server. (Because 
we changed the endorsed folder, we need to restart it to make it take 
effect).</p><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Please make sure your classpath 
doesn't have the servlet-2.5 library, since WebSphere6.1 is servlet-2.4 
compliant!</p></div></div><h5 
id="ApplicationServerSpecificConfigurationGuide-Addyourownclassl
 oader">Add your own class loader</h5><p>If you put your wsdl4j-1.6.1 jar in 
$WAS_HOME/java/jre/lib/endorsed, all your applications will depend on your 
version of wsdl4j. Another solution is to create a new class loader in your 
server which loads before parent class loader, create a shared library with 
your version of wsdl4j, and add this shared library to your new class loader. 
This version of wsdl4j will only be available for your specific server and not 
affect applications running in other servers.</p><p><strong>Step by 
step</strong></p><ol><li>In the WAS console navigate to <strong>Environment 
&gt; Shared Libraries</strong></li><li>Select the scope you wish your library 
should be visible in</li><li>Click <strong>New</strong> and set values ex: 
<code>name=MYAPP_SHARED_LIB, classpath=PATH_TO/wsdl4j-1.6.2.jar</code> and 
<strong>Save</strong></li><li>Navigate to <strong>Application servers &gt; 
[your server name]</strong> <strong>&gt; Java and Process Management &gt; Class 
loader &gt
 ; New</strong></li><li>Select <strong>Classes loaded with application class 
loader first</strong> and <strong>Save</strong></li><li>Select your new class 
loader and click <strong>Shared library references</strong></li><li>Add your 
shared library (MYAPP_SHARED_LIB) <strong>Save</strong> and restart your 
server.</li></ol><p>Tested in WAS 6.1 only but should work in earlier versions 
as well.</p><p>Another user running WS6.1 FP 23 without the web services 
feature pack came up with this solution that seemed to work for 
them:</p><blockquote><p>Create a shared library with the following jars:<br 
clear="none"> jsr173_api-1.0.jar<br clear="none"> jaxp-ri-1.4.2.jar<br 
clear="none"> saaj-impl-1.3.2.jar<br clear="none"> 
wsdl4j-1.6.2.jar</p><p>Create a new parent-first classloader and have it 
reference the shared library you just created. Restart everything and it should 
work.</p></blockquote><h4 
id="ApplicationServerSpecificConfigurationGuide-WebServicesFeaturePackforWebSphereInstalled">Web
 Ser
 vices Feature Pack for WebSphere Installed</h4><p>Things are way more 
complicated if the Web Services Feature Pack for WebSphere is installed. With 
this feature pack installed, it is impossible to deploy an application using 
CXF, because the WebSphere Web Services engine starts parsing the JAX-WS 
annotations of the services and tries to deploy the services.</p><p>Up to 
fixpack 27 (6.1.0.27) there was no possibility to disable the WebSphere Web 
Services engine.</p><h3 
id="ApplicationServerSpecificConfigurationGuide-ForWebSphere6.1.0.29+,V7andV8">For
 WebSphere 6.1.0.29+, V7 and V8</h3><p>Follow the PDF download given within 
this IBM developerWorks article:<a shape="rect" class="external-link" 
href="http://www.ibm.com/developerworks/websphere/library/techarticles/1001_thaker/1001_thaker.html";
 
rel="nofollow">http://www.ibm.com/developerworks/websphere/library/techarticles/1001_thaker/1001_thaker.html</a></p><p>As
 described in the PDF, you'll need to change the Classloader order to "Clas
 ses loaded with local class loader first (parent last)" and to disable the IBM 
web services engine, either for the JVM as a whole or for the particular 
module.</p><p>To disable for the whole JVM, set the JVM 
property</p><p>com.ibm.websphere.webservices.DisableIBMJAXWSEngine=true</p><p>or
 to disable the engine just for a specific module by 
adding</p><p>DisableIBMJAXWSEngine: true</p><p>to 
WAR/META-INF/MANIFEST.MF.</p><p>Another issue that comes up with certain 
versions of WebSphere is an incompatibility with the SAAJ implementation. It is 
recommended to use the org.apache.servicemix.bundles.saaj-impl-1.3.18_1.jar 
saaj impl available from <a shape="rect" class="external-link" 
href="http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.saaj-impl/1.3.18_1/";
 
rel="nofollow">http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.saaj-impl/1.3.18_1/</a>
 as that contains a recent version of SAAJ along with it's required D
 OM implementation which will work on the IBM JDK.</p><p>One user has reported 
that he was able to get CXF working on WebSphere with a minimal set of CXF jars 
by following the above<br clear="none"> procedures and using the list of 
jars:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">FastInfoset-1.2.9.jar
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">FastInfoset-1.2.9.jar
 aopalliance-1.0.jar
 commons-logging-1.1.1.jar
 cxf-2.5.2.jar
@@ -203,7 +204,7 @@ wsdl4j-1.6.2.jar
 xmlschema-core-2.0.1.jar
 </pre>
 </div></div><h2 
id="ApplicationServerSpecificConfigurationGuide-Glassfish">Glassfish</h2><p>CXF 
Interceptors will not work in Glassfish without this sun-web.xml file to 
configure the classloader. By default, Glassfish will use Metro for JAX-WS 
services so the classloader needs to be configured to allow CXF libraries to 
provide JAX-WS services. The following sun-web.xml xml source was added to 
/WEB-INF to resolve this issue:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.//DTD
 Application Server 9.0 Servlet 2.5//EN'
 'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'&gt;
@@ -212,7 +213,7 @@ Application Server 9.0 Servlet 2.5//EN'
 &lt;/sun-web-app&gt;
 </pre>
 </div></div><h2 
id="ApplicationServerSpecificConfigurationGuide-OC4J">OC4J</h2><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This guide requires heavy 
customization of the OC4J configuration. Bear in mind that some of steps 
presented below are either undocumented or unsupported. We strongly advice you 
to perform those steps in a separate container, dedicated exclusively for 
CXF.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Also see: <a shape="rect" 
class="external-link" 
href="http://chadthedeveloper.blogspot.com/2008/06/cxf-vs-oc4j-round-1.html"; 
rel="nofollow">http://chadthedeveloper.blogspot.com/2008/06/cxf-vs-oc
 4j-round-1.html</a> for other suggestions on how to configure 
OC4J.</p></div></div><h3 
id="ApplicationServerSpecificConfigurationGuide-Disclaimer">Disclaimer</h3><p>This
 guide covers only 10.1.3.X.X version of OC4J. Note that OC4J 10.1.2 is not JSE 
1.5 certified server. OC4J 11_g_ is <a shape="rect" class="external-link" 
href="http://java.sun.com/javaee/overview/compatibility.jsp"; 
rel="nofollow">fully JEE 5.0 certified stack</a> and comes with their own 
JAX-WS implementation.</p><h3 
id="ApplicationServerSpecificConfigurationGuide-Background">Background</h3><p>Oracle
 OC4J comes with highly customized XML stack by Oracle including SAX, StAX, 
JAXP, JAX-WS, SAAJ, WSDL and few others. All of those frameworks are Oracle 
proprietary implementations in the OC4J distribution. This gives Oracle really 
good interoperability between their products but it makes it rather hard to 
introduce something which needs different implementation of above APIs (like 
CXF).</p><div class="confluence-informati
 on-macro confluence-information-macro-tip"><span class="aui-icon 
aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p><span 
class="confluence-anchor-link" 
id="ApplicationServerSpecificConfigurationGuide-orajaxws"></span><br 
clear="none"> OC4J 10.1.3 comes with <a shape="rect" class="external-link" 
href="http://www.oracle.com/technology/tech/java/oc4j/10131/OracleAS-NF-10131.pdf";
 rel="nofollow">preliminary implementation of JAX-WS (JSR-181)</a> but this 
implementation is somewhat limited only to top-down scenario, with very limited 
customization (lack of JAXB 2.0 etc.).</p></div></div><h4 
id="ApplicationServerSpecificConfigurationGuide-Configurationoverview">Configuration
 overview</h4><p>A few components need to be customized in OC4J to allow CFX 
integration:</p><ul><li><a shape="rect" class="external-link" 
href="http://xerces.apache.org/xerces2-j/";>Xerces</a></li><li>JAX-WS 2.0 
APIs</li><li><a shape="rect" cl
 ass="external-link" href="http://sourceforge.net/projects/wsdl4j"; 
rel="nofollow">WSDL4J</a></li></ul><p>Unfortunately, these components have to 
be configured in different parts of OC4J.</p><h4 
id="ApplicationServerSpecificConfigurationGuide-OracleOC4Jclassloading">Oracle 
OC4J class loading</h4><p>A key part of successfully integrating CXF into OC4J 
is to understand how class loaders work in OC4J. When starting OC4J there are 
generally three stages where customization could occur:</p><ol><li>Virtual 
Machine boot</li><li>OC4J boot</li><li>CXF (application) 
boot</li></ol><p>Customizing in the last step is <a shape="rect" 
class="external-link" 
href="http://download-uk.oracle.com/docs/cd/B25221_03/web.1013/b14433/classload.htm";
 rel="nofollow">quite easy to achieve</a> - basically OC4J has quite powerful 
class loader and an easy customization console. Unfortunately there are some 
components that could not be configured this way. They are configured during 
OC4J boot. Unfortunately one of t
 his is OC4J webservices stack (located in 
<code>$ORACLE_HOME/webservices/lib</code>).</p><h4 
id="ApplicationServerSpecificConfigurationGuide-Neededcomponents">Needed 
components</h4><p>Before start please download <a shape="rect" 
href="http://cxf.apache.org/download.html";>Apache CXF 2.0.6 or better</a> and 
<a shape="rect" class="external-link" 
href="http://archive.apache.org/dist/xml/xerces-j/";>Xerces 2.8.1</a></p><h4 
id="ApplicationServerSpecificConfigurationGuide-Preparingstax-api">Preparing 
stax-api</h4><p>If you use a version of CXF that includes stax-api.jar that in 
turn include the QName class, remove <code>javax.xml.namespace.QName</code> 
from the stax-api shipped with CXF. Oracle apparently has it already in 
<code>$ORACLE_HOME/j2ee/home/lib/jax-qname-namespace.jar</code>.</p><p><span 
class="confluence-anchor-link" 
id="ApplicationServerSpecificConfigurationGuide-xerces"></span></p><h4 
id="ApplicationServerSpecificConfigurationGuide-ReplacetheOracleXMLparserwithXerces">Replace
 
 the Oracle XML parser with Xerces</h4><p>The basic idea behind how to do this 
is described in detail <a shape="rect" class="external-link" 
href="http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-swapxmlparser/doc/readme.html";
 rel="nofollow">here</a></p><p>Create OC4J shared library named 
<code>cxf.foundation</code> and fill it with:</p><ul><li>xercesImpl.jar (from 
Xerces distribution)</li><li>xml-apis-1.2.02.jar (from 
CXF-distribution)</li><li>xalan-2.7.0.jar 
(ditto)</li><li><p>geronimo-ws-metadata_2.0_spec-1.1.1.jar (ditto)</p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When building Your application 
<strong>DO NOT INCLUDE THOSE COMPONENTS</strong> 
again.</p></div></div></li></ul><h4 
id="ApplicationServerSpecificConfigurationGuide-GetridofOC4JJAX-WSlibraries">Get
 rid of OC4J JAX-WS libr
 aries</h4><p>OC4J has <a shape="rect" 
href="application-server-specific-configuration-guide.html">preliminary support 
for JAX-WS</a>, unfortunately this means that during OC4J boot it loads 
<em>outdated</em> JAX-WS APIs and implementation by Oracle. This occurs even 
before shared libraries comes into action, at a very early stage of OC4J boot. 
Boot-time OC4J libraries are configured in <code>boot.xml</code> file in 
<code>$ORACLE_HOME/j2ee/home/oc4j.jar</code> bootstrap jar. To get rid of 
this:</p><ul><li>unpack <code>oc4j.jar</code> file</li><li>locate 
<code>META-INF/boot.xml</code> file and edit it</li><li>find 
section</li></ul><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;!-- WS jax-rpc --&gt;
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;!-- WS jax-rpc --&gt;
         &lt;code-source path="${oracle.home}/webservices/lib/jaxr-api.jar"/&gt;
         &lt;code-source 
path="${oracle.home}/webservices/lib/jaxrpc-api.jar"/&gt;
         &lt;code-source path="${oracle.home}/webservices/lib/jaxb-api.jar"/&gt;
@@ -220,9 +221,9 @@ Application Server 9.0 Servlet 2.5//EN'
         &lt;code-source path="${oracle.home}/webservices/lib/jws-api.jar" 
if="java.specification.version == /1\.[5-6]/"/&gt;
 </pre>
 </div></div><p>and comment out line which include <code>jws-api.jar</code> 
entry, like below</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;!-- &lt;code-source 
path="${oracle.home}/webservices/lib/jws-api.jar" 
if="java.specification.version == /1\.[5-6]/"/&gt; --&gt;
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;!-- &lt;code-source 
path="${oracle.home}/webservices/lib/jws-api.jar" 
if="java.specification.version == /1\.[5-6]/"/&gt; --&gt;
 </pre>
-</div></div><ul><li>repackage <code>oc4j.jar</code> (don't forget about 
<code>MANIFEST.MF</code> - use <code>jar -m 
META-INF/MANIFEST.MF</code>)</li></ul><p><span class="confluence-anchor-link" 
id="ApplicationServerSpecificConfigurationGuide-wsdl4j"></span></p><h4 
id="ApplicationServerSpecificConfigurationGuide-swappingOraclewsdl.jarwithwsdl4j.jarandjaxb.jarAPIwithjaxb-api-2.0.jar">swapping
 Oracle <code>wsdl.jar</code> with <code>wsdl4j.jar</code> and 
<code>jaxb.jar</code> API with 
<code>jaxb-api-2.0.jar</code></h4><p>Additionally Oracle provides it's own 
implementation of WSDL functionality which conflicts with 
<code>wsdl4j.jar</code>. To get rid of this add 
<code>-Xbootclasspath/p:"&lt;path to wsdlj&gt;/wsdl4j-1.6.1.jar;&lt;path to 
jaxb2&gt;/jaxb-api-2.0.jar"</code> option to JVM parametrs (either in command 
line running OC4J standalone or in OPMN).</p><h4 
id="ApplicationServerSpecificConfigurationGuide-Deployingapplications">Deploying
 applications</h4><p>When deploying please fol
 low those steps:</p><ul><li>Edit deployment plan</li><li>Edit <code>Configure 
class loading</code> in the deployment plan like described <a shape="rect" 
class="external-link" 
href="http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-swapxmlparser/doc/readme.html";
 rel="nofollow">here</a></li><li><strong>Uncheck</strong> 
<code><strong>oracle.xml</strong></code> library</li><li><strong>Check</strong> 
<code><strong>cxf.foundation</strong></code> 
library</li><li><strong>Uncheck</strong> <code><strong>Search Local Classes 
First</strong></code></li><li><p>do not include <code>xercesImpl</code>, 
<code>xml-apis</code>, <code>xalan</code> and 
<code>geronimo-ws-metadata_2.0_spec-1.1.1.jar</code> in <code>war</code> - 
those will be automatically loaded by by OC4J Shared Libraries class 
loader.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div class=
 "confluence-information-macro-body"><p>You can automate above steps by 
packaging You <code>war</code> into <code>ear</code> archive (even though) if 
it's only <code>war</code> and providing <code>orion-application.xml</code> 
proprietary descriptor as described <a shape="rect" class="external-link" 
href="http://download-west.oracle.com/docs/cd/B32110_01/web.1013/b28952/classload.htm#CIHIHDEG";
 rel="nofollow">here</a>. You could also provide proprietary 
<code>orion-web.xml</code> in Your <code>war</code> instrumenting <code>Search 
Local Classes First</code> attribute described above. This step is described <a 
shape="rect" class="external-link" 
href="http://www.oracle.com/technology/tech/java/oc4j/htdocs/how-to-servlet-sysclassloader.html";
 rel="nofollow">here</a>.</p></div></div></li></ul><h4 
id="ApplicationServerSpecificConfigurationGuide-OracleFAQ">Oracle FAQ</h4><h5 
id="ApplicationServerSpecificConfigurationGuide-I'mgettingjava.lang.ClassCastException:org.apache.xerces.jaxp.DocumentB
 uilderFactoryImpl">I'm getting <code>java.lang.ClassCastException: 
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</code></h5><p>This primarily 
happens when:</p><ul><li>xerces is loaded twice - by shared library class 
loader and application class loader</li><li>or when there is mismatch between 
<code>xerces</code> and <code>oracle</code> implementation of SAX 
API</li></ul><p>Please be sure You properly installed and enabled for Your 
application <code>cxf.foundation</code> shared library as described <a 
shape="rect" 
href="application-server-specific-configuration-guide.html">here</a>. If Yes 
please be sure that You didn't include xercesImpl.jar in Your <code>war</code>. 
If You still have problems please <a shape="rect" class="external-link" 
href="http://java.sun.com/javase/6/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()"
 rel="nofollow">see how You can debug JAXP problems</a> - be sure that 
<code>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</code> are instantia
 ted from within <code>JAXP</code> and not 
<code>oracle.xml.parser.v2.DocumentBuilder</code>.</p><p><span 
class="confluence-anchor-link" 
id="ApplicationServerSpecificConfigurationGuide-f2"></span></p><h5 
id="ApplicationServerSpecificConfigurationGuide-IcannotgetWSDL(gettingHTTP500accesingmyCXFserviceWSDLwithhttp://myshot/myservice?wsdl)">I
 cannot get WSDL (getting HTTP 500 accesing my CXF service WSDL with <a 
shape="rect" class="external-link" href="http://myshot/myservice?wsdl"; 
rel="nofollow">http://myshot/myservice?wsdl</a>)</h5><p>Please be sure that 
<code>wsdl4j.jar</code> is loaded before <code>wsdl.jar</code> as described <a 
shape="rect" 
href="application-server-specific-configuration-guide.html">here</a></p><h5 
id="ApplicationServerSpecificConfigurationGuide-I'mgettingjava.lang.NoSuchMethodException:oracle.j2ee.ws.wsdl.extensions.soap.SOAPBodyImpl.getElementType()">I'm
 getting <code>java.lang.NoSuchMethodException: 
oracle.j2ee.ws.wsdl.extensions.soap.SOAPBodyImpl.getElementTyp
 e()</code></h5><p><a shape="rect" 
href="application-server-specific-configuration-guide.html">See this</a></p><h5 
id="ApplicationServerSpecificConfigurationGuide-Icannotgetittoworkstill">I 
cannot get it to work still</h5><p>Try something simple. Download OC4J 
standalone and bootstrap it from command line directly: <code>java [options] 
-jar oc4j.jar</code>. Enable <a shape="rect" class="external-link" 
href="http://java.sun.com/javase/6/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()"
 rel="nofollow">SAX debugging</a>. Be sure You don't include douplicated jars 
in Your application like <code>xercesImpl, xalan, xml-apis and 
geronimo-ws-metadata_2.0_spec-1.1.1.jar</code>. Review steps above once more. 
It works <img class="emoticon emoticon-wink" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/wink.png";
 data-emoticon-name="wink" alt="(wink)"> .</p><h2 
id="ApplicationServerSpecificConfigurationGuide-In
 tegrationwithApplicationServerFAQ">Integration with Application Server 
FAQ</h2><p>1.<br clear="none"> Q: I have this error: 
javax.xml.ws.WebServiceException: Cannot create SAAJ factory instance.<br 
clear="none"> A: Please make sure you have the saaj-impl-1.3.jar in the 
classpath and make sure your app picks up this one instead of weblogic 
one.</p><h2 
id="ApplicationServerSpecificConfigurationGuide-Resources">Resources</h2><p><a 
shape="rect" class="external-link" 
href="http://download-uk.oracle.com/docs/cd/B25221_03/web.1013/b14433/classload.htm";
 rel="nofollow">Utilizing the OC4J Class Loading Framework</a><br clear="none"> 
<a shape="rect" class="external-link" 
href="http://xfire.codehaus.org/XFire+on+WebLogic+9.2"; rel="nofollow">Deploy 
XFire in WebLogic</a><br clear="none"> <a shape="rect" class="external-link" 
href="http://edocs.bea.com/wls/docs92/programming/classloading.html"; 
rel="nofollow">Understanding WebLogic ClassLoader</a><br clear="none"> <a 
shape="rect" class="external-li
 nk" href="http://www.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration"; 
rel="nofollow">JBoss Class Configuration</a><br clear="none"> <a shape="rect" 
class="external-link" 
href="http://java.sun.com/javase/6/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()"
 rel="nofollow">Troubleshooting SAX</a></p></div>
+</div></div><ul><li>repackage <code>oc4j.jar</code> (don't forget about 
<code>MANIFEST.MF</code> - use <code>jar -m 
META-INF/MANIFEST.MF</code>)</li></ul><p><span class="confluence-anchor-link" 
id="ApplicationServerSpecificConfigurationGuide-wsdl4j"></span></p><h4 
id="ApplicationServerSpecificConfigurationGuide-swappingOraclewsdl.jarwithwsdl4j.jarandjaxb.jarAPIwithjaxb-api-2.0.jar">swapping
 Oracle <code>wsdl.jar</code> with <code>wsdl4j.jar</code> and 
<code>jaxb.jar</code> API with 
<code>jaxb-api-2.0.jar</code></h4><p>Additionally Oracle provides it's own 
implementation of WSDL functionality which conflicts with 
<code>wsdl4j.jar</code>. To get rid of this add 
<code>-Xbootclasspath/p:"&lt;path to wsdlj&gt;/wsdl4j-1.6.1.jar;&lt;path to 
jaxb2&gt;/jaxb-api-2.0.jar"</code> option to JVM parametrs (either in command 
line running OC4J standalone or in OPMN).</p><h4 
id="ApplicationServerSpecificConfigurationGuide-Deployingapplications">Deploying
 applications</h4><p>When deploying please fol
 low those steps:</p><ul><li>Edit deployment plan</li><li>Edit <code>Configure 
class loading</code> in the deployment plan like described <a shape="rect" 
class="external-link" 
href="http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-swapxmlparser/doc/readme.html";
 rel="nofollow">here</a></li><li><strong>Uncheck</strong> 
<code><strong>oracle.xml</strong></code> library</li><li><strong>Check</strong> 
<code><strong>cxf.foundation</strong></code> 
library</li><li><strong>Uncheck</strong> <code><strong>Search Local Classes 
First</strong></code></li><li><p>do not include <code>xercesImpl</code>, 
<code>xml-apis</code>, <code>xalan</code> and 
<code>geronimo-ws-metadata_2.0_spec-1.1.1.jar</code> in <code>war</code> - 
those will be automatically loaded by by OC4J Shared Libraries class 
loader.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div class=
 "confluence-information-macro-body"><p>You can automate above steps by 
packaging You <code>war</code> into <code>ear</code> archive (even though) if 
it's only <code>war</code> and providing <code>orion-application.xml</code> 
proprietary descriptor as described <a shape="rect" class="external-link" 
href="http://download-west.oracle.com/docs/cd/B32110_01/web.1013/b28952/classload.htm#CIHIHDEG";
 rel="nofollow">here</a>. You could also provide proprietary 
<code>orion-web.xml</code> in Your <code>war</code> instrumenting <code>Search 
Local Classes First</code> attribute described above. This step is described <a 
shape="rect" class="external-link" 
href="http://www.oracle.com/technology/tech/java/oc4j/htdocs/how-to-servlet-sysclassloader.html";
 rel="nofollow">here</a>.</p></div></div></li></ul><h4 
id="ApplicationServerSpecificConfigurationGuide-OracleFAQ">Oracle FAQ</h4><h5 
id="ApplicationServerSpecificConfigurationGuide-I'mgettingjava.lang.ClassCastException:org.apache.xerces.jaxp.DocumentB
 uilderFactoryImpl">I'm getting <code>java.lang.ClassCastException: 
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</code></h5><p>This primarily 
happens when:</p><ul><li>xerces is loaded twice - by shared library class 
loader and application class loader</li><li>or when there is mismatch between 
<code>xerces</code> and <code>oracle</code> implementation of SAX 
API</li></ul><p>Please be sure You properly installed and enabled for Your 
application <code>cxf.foundation</code> shared library as described <a 
shape="rect" 
href="application-server-specific-configuration-guide.html">here</a>. If Yes 
please be sure that You didn't include xercesImpl.jar in Your <code>war</code>. 
If You still have problems please <a shape="rect" class="external-link" 
href="http://java.sun.com/javase/6/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()"
 rel="nofollow">see how You can debug JAXP problems</a> - be sure that 
<code>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</code> are instantia
 ted from within <code>JAXP</code> and not 
<code>oracle.xml.parser.v2.DocumentBuilder</code>.</p><p><span 
class="confluence-anchor-link" 
id="ApplicationServerSpecificConfigurationGuide-f2"></span></p><h5 
id="ApplicationServerSpecificConfigurationGuide-IcannotgetWSDL(gettingHTTP500accesingmyCXFserviceWSDLwithhttp://myshot/myservice?wsdl)">I
 cannot get WSDL (getting HTTP 500 accesing my CXF service WSDL with <a 
shape="rect" class="external-link" href="http://myshot/myservice?wsdl"; 
rel="nofollow">http://myshot/myservice?wsdl</a>)</h5><p>Please be sure that 
<code>wsdl4j.jar</code> is loaded before <code>wsdl.jar</code> as described <a 
shape="rect" 
href="application-server-specific-configuration-guide.html">here</a></p><h5 
id="ApplicationServerSpecificConfigurationGuide-I'mgettingjava.lang.NoSuchMethodException:oracle.j2ee.ws.wsdl.extensions.soap.SOAPBodyImpl.getElementType()">I'm
 getting <code>java.lang.NoSuchMethodException: 
oracle.j2ee.ws.wsdl.extensions.soap.SOAPBodyImpl.getElementTyp
 e()</code></h5><p><a shape="rect" 
href="application-server-specific-configuration-guide.html">See this</a></p><h5 
id="ApplicationServerSpecificConfigurationGuide-Icannotgetittoworkstill">I 
cannot get it to work still</h5><p>Try something simple. Download OC4J 
standalone and bootstrap it from command line directly: <code>java [options] 
-jar oc4j.jar</code>. Enable <a shape="rect" class="external-link" 
href="http://java.sun.com/javase/6/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()"
 rel="nofollow">SAX debugging</a>. Be sure You don't include douplicated jars 
in Your application like <code>xercesImpl, xalan, xml-apis and 
geronimo-ws-metadata_2.0_spec-1.1.1.jar</code>. Review steps above once more. 
It works <img class="emoticon emoticon-wink" 
src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/wink.png";
 data-emoticon-name="wink" alt="(wink)"> .</p><h2 
id="ApplicationServerSpecificConfigurationGuide-In
 tegrationwithApplicationServerFAQ">Integration with Application Server 
FAQ</h2><p>1.<br clear="none"> Q: I have this error: 
javax.xml.ws.WebServiceException: Cannot create SAAJ factory instance.<br 
clear="none"> A: Please make sure you have the saaj-impl-1.3.jar in the 
classpath and make sure your app picks up this one instead of weblogic 
one.</p><h2 
id="ApplicationServerSpecificConfigurationGuide-Resources">Resources</h2><p><a 
shape="rect" class="external-link" 
href="http://download-uk.oracle.com/docs/cd/B25221_03/web.1013/b14433/classload.htm";
 rel="nofollow">Utilizing the OC4J Class Loading Framework</a><br clear="none"> 
<a shape="rect" class="external-link" 
href="http://xfire.codehaus.org/XFire+on+WebLogic+9.2"; rel="nofollow">Deploy 
XFire in WebLogic</a><br clear="none"> <a shape="rect" class="external-link" 
href="http://edocs.bea.com/wls/docs92/programming/classloading.html"; 
rel="nofollow">Understanding WebLogic ClassLoader</a><br clear="none"> <a 
shape="rect" class="external-li
 nk" href="http://www.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration"; 
rel="nofollow">JBoss Class Configuration</a><br clear="none"> <a shape="rect" 
class="external-link" 
href="http://java.sun.com/javase/6/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()"
 rel="nofollow">Troubleshooting SAX</a></p></div>
            </div>
            <!-- Content -->
          </td>

Modified: websites/production/cxf/content/docs/architectural-decisions.html
==============================================================================
--- websites/production/cxf/content/docs/architectural-decisions.html (original)
+++ websites/production/cxf/content/docs/architectural-decisions.html Tue Sep 
12 19:09:41 2017
@@ -110,11 +110,11 @@ Apache CXF -- Architectural Decisions
 <div id="ConfluenceContent"><p><strong>work in progresss</strong></p>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1435780149407 {padding: 0px;}
-div.rbtoc1435780149407 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1435780149407 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1505242916629 {padding: 0px;}
+div.rbtoc1505242916629 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1505242916629 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1435780149407">
+/*]]>*/</style><div class="toc-macro rbtoc1505242916629">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ArchitecturalDecisions-DecisionProcess">Decision Process</a></li><li><a 
shape="rect" 
href="#ArchitecturalDecisions-Howtodocumentarchitecturaldecisions">How to 
document architectural decisions</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ArchitecturalDecisions-Template:Shortonelinesummaryofthedecision">Template:
 Short one line summary of the decision</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#ArchitecturalDecisions-Reasonsforthedecision">Reasons for the 
decision</a></li><li><a shape="rect" 
href="#ArchitecturalDecisions-Alternatives">Alternatives</a>

Modified: 
websites/production/cxf/content/docs/asynchronous-client-http-transport.html
==============================================================================
--- 
websites/production/cxf/content/docs/asynchronous-client-http-transport.html 
(original)
+++ 
websites/production/cxf/content/docs/asynchronous-client-http-transport.html 
Tue Sep 12 19:09:41 2017
@@ -117,14 +117,14 @@ Apache CXF -- Asynchronous Client HTTP T
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><h1 
id="AsynchronousClientHTTPTransport-AsynchronousClientHTTPTransport">Asynchronous
 Client HTTP Transport</h1><p>By default, CXF uses a transport based on the 
in-JDK HttpURLConnection object to perform HTTP requests. The HttpURLConnection 
object uses a blocking model for all IO operations which requires a per-thread 
execution model. From a pure performance standpoint, this model generally 
performs very well, but it does have problems scaling when many requests need 
to be executed simultaneously.</p><p>Also, the JAX-WS specification allows for 
generation of asynchronous methods on generated proxies as well as using 
asynchronous methods on the Dispatch objects. These methods can take an 
AsyncHandler object and return a polling Future object so applications do not 
have to wait for the response. With the HttpURLConnection based transport, CXF 
was forced to consume a background thread for each outstanding 
request.</p><p>CXF also has an HTTP client transport 
 that is based on the <a shape="rect" class="external-link" 
href="http://hc.apache.org/httpcomponents-asyncclient-dev/index.html";>Apache 
HTTP Components HttpAsyncClient</a> library. Its Maven artifactId is&#160;<span 
style="line-height: 1.4285715;">cxf-rt-transports-http-hc.</span><span 
style="line-height: 1.4285715;">&#160;The HttpAsyncClient library uses a 
non-blocking IO model. This allows many more requests to be outstanding without 
consuming extra background threads. It also allows greater control over things 
like Keep-Alive handling which is very difficult or impossible with the 
HttpURLConnection based transport. However, the non-blocking model does not 
perform quite as well as the blocking model for pure synchronous 
request/response transactions.</span></p><p>By default, if the 
cxf-rt-transports-http-hc module is found on the classpath, CXF will use the 
HttpAsyncClient based implementation for any Async calls, but will continue to 
use the HttpURLConnection based transport for 
 synchronous calls. This allows a good balance of performance for the common 
synchronous cases with scalability for the asynchronous cases. However, using a 
contextual property of "use.async.http.conduit" and set to true/false, you can 
control whether the async or blocking version is used. If "true", the 
HttpAsyncClient will be used even for synchronous calls, if "false", 
asynchronous calls will rely on the traditional method of using 
HTTPURLConnection along with a work queue to mimic the asynchronocity.&#160; 
And if TLSClientParameters sets an SSLSocketFactory,&#160; as SocketFactory 
class and SocketFactory#createSocket methods in particular are inherently 
blocking and sockets instantiated in such a way cannot be used for 
asynchronous, so this lead to use the HttpURLConnection based 
transport.</p><p>Another reason to use the asynchronous transport is to use 
HTTP methods that HttpURLConnection does not support. For example, the 
github.com REST API specifies the use of PATCH for some 
 cases, but HttpURLConnection rejects PATCH.</p><h3 
id="AsynchronousClientHTTPTransport-UsingtheHTTPComponentsTransportfromJavaCode">Using
 the HTTP Components Transport from Java Code</h3><p>To force global use of the 
HTTP Components transport, you can set a bus-level property:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;"> Bus bus = BusFactory.getDefaultBus();
+<pre class="brush: java; gutter: false; theme: Confluence" 
style="font-size:12px;"> Bus bus = BusFactory.getDefaultBus();
  // insist on the async connector to use PATCH.
  bus.setProperty(AsyncHTTPConduit.USE_ASYNC, Boolean.TRUE);</pre>
 </div></div><pre><span style="font-size: 16.0px;line-height: 
1.5625;font-family: Arial , sans-serif;">Setting Credentials</span></pre><p>The 
"normal" CXF/JAX-WS method of setting user credentials via the 
BindingProvider.USERNAME_PROPERTY/PASSWORD_PROPERTY will work with the Async 
transport as well. However, the HttpAsyncClient library does have some 
additional capabilities around NTLM that can be leveraged. In order to use 
that, you need to:</p><ul><li>Turn on the AutoRedirect and turn off the 
Chunking for the Conduit. This will allow CXF to cache the response in a manner 
that will allow the transport to keep resending the request during the 
authentication negotiation.</li></ul><ul><li><p>Force the use of the Async 
transport even for synchronous calls</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">bp.getRequestContext().put("use.async.http.conduit", 
Boolean.TRUE);
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">bp.getRequestContext().put("use.async.http.conduit", 
Boolean.TRUE);
 </pre>
 </div></div></li></ul><ul><li><p>Set the property 
"org.apache.http.auth.Credentials" to an instance of the Credentials. For 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">Credentials creds = new NTCredentials("username", 
"pswd", null, "domain");
+<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">Credentials creds = new NTCredentials("username", 
"pswd", null, "domain");
 bp.getRequestContext().put(Credentials.class.getName(), creds);
 </pre>
 </div></div></li></ul><h3 
id="AsynchronousClientHTTPTransport-Configuration">Configuration</h3><p>The 
Asynchronous HTTP Transport has several options that can set using Bus 
properties or via the OSGi configuration services to control various aspects of 
the underlying Apache HTTP Components HttpAsyncClient objects.</p><p>Settings 
related to the underlying TCP socket (see <a shape="rect" class="external-link" 
href="http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html"; 
rel="nofollow">java.net.Socket</a> for a definition of these values):</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.TCP_NODELAY 
(Default true)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.SO_KEEPALIVE</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.SO_LINGER</p></td></tr><tr><td
 colspan="
 1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.SO_TIMEOUT</p></td></tr></tbody></table></div><p>Settings
 related to Keep-Alive connection management:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.CONNECTION_TTL</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Maximum time a connection to 
live(from creation to expiry)<span>&#160;</span>. Default is 
60000.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.MAX_CONNECTIONS</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><span>Maximum number of 
connections opened in total. Default is 5000.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.MAX_PER_HOST_CONNECTIONS</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><span>Maximum number of 
connections opened
  per host. Default is 
1000.</span></p></td></tr></tbody></table></div><p>Settings related to Apache 
HttpAsyncClient threads and selectors:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.ioThreadCount</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Number of threads 
HttpAsyncClient uses to process IO events. Default is "-1" which means one 
thread per CPU core.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.interestOpQueued</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>true/false for whether the 
interest ops are queues or process directly.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.selectInterval</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Default 1000 ms. How often the 
selector thread wakes up if there are no events 
 to process additional things like queue 
expirations.</p></td></tr></tbody></table></div><p>Setting to control which 
conduit is used</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>org.apache.cxf.transport.http.async.usePolicy</p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>ALWAYS, ASYNC_ONLY, 
NEVER.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Similar in 
meaning to the "use.async.http.conduit" context property described above. 
Whether to use the HttpAsyncClient: ALWAYS for both synchronous and 
asynchronous calls, ASYNC_ONLY (default) for asynchronous calls only, NEVER 
will use HTTPURLConnection for both types of 
calls.</p></td></tr></tbody></table></div></div>


Reply via email to