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
 Wed Sep 13 15:05:52 2017
@@ -32,9 +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/shBrushXml.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();
@@ -119,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.rbtoc1505311208404 {padding: 0px;}
-div.rbtoc1505311208404 ul {list-style: disc;margin-left: 0px;padding-left: 
20px;}
-div.rbtoc1505311208404 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1505314843242 {padding: 0px;}
+div.rbtoc1505314843242 ul {list-style: disc;margin-left: 0px;padding-left: 
20px;}
+div.rbtoc1505314843242 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1505311208404">
+/*]]>*/</style></p><div class="toc-macro rbtoc1505314843242">
 <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>
@@ -140,7 +140,7 @@ div.rbtoc1505311208404 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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;jboss-deployment-structure 
xmlns="urn:jboss:deployment-structure:1.2"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
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;
@@ -149,7 +149,7 @@ div.rbtoc1505311208404 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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
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;
@@ -164,7 +164,7 @@ div.rbtoc1505311208404 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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
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;
@@ -176,7 +176,7 @@ div.rbtoc1505311208404 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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">FastInfoset-1.2.9.jar
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">FastInfoset-1.2.9.jar
 aopalliance-1.0.jar
 commons-logging-1.1.1.jar
 cxf-2.5.2.jar
@@ -204,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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
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;
@@ -213,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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;!-- WS jax-rpc --&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
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;
@@ -221,7 +221,7 @@ 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: 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 class="brush: java; 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>
 </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>

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 Wed Sep 
13 15:05:52 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.rbtoc1505311214236 {padding: 0px;}
-div.rbtoc1505311214236 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1505311214236 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1505314845706 {padding: 0px;}
+div.rbtoc1505314845706 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1505314845706 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1505311214236">
+/*]]>*/</style><div class="toc-macro rbtoc1505314845706">
 <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 
Wed Sep 13 15:05:52 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: Confluence" 
style="font-size:12px;"> Bus bus = BusFactory.getDefaultBus();
+<pre class="brush: java; gutter: false; theme: Default" 
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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">bp.getRequestContext().put("use.async.http.conduit", 
Boolean.TRUE);
+<pre class="brush: java; gutter: false; theme: Default" 
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: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">Credentials creds = new NTCredentials("username", 
"pswd", null, "domain");
+<pre class="brush: java; gutter: false; theme: Default" 
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>

Modified: websites/production/cxf/content/docs/atom-logging.html
==============================================================================
--- websites/production/cxf/content/docs/atom-logging.html (original)
+++ websites/production/cxf/content/docs/atom-logging.html Wed Sep 13 15:05:52 
2017
@@ -32,9 +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/shBrushXml.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();
@@ -119,13 +119,13 @@ Apache CXF -- ATOM Logging
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p><strong>This feature is available since CXF 
2.3.0, as part of the cxf-rt-management-web component</strong></p><p>CXF 
supports collecting log events, converting them to <a shape="rect" 
class="external-link" href="http://tools.ietf.org/html/rfc4287"; 
rel="nofollow">ATOM Syndication Format</a> and either pushing them to the 
Atom-aware consumers or making them available for polling. Logging is based on 
a custom <code>java.util.logging</code> (JUL) handler that can be registered 
with loggers extending today's publishing protocols.</p><p><strong>CXF JAXRS 
and JAXWS endpoints</strong> can avail of this feature.</p><h2 
id="ATOMLogging-PushStyle">Push Style</h2><p>Push-style handler enqueues log 
records as they are published from loggers. After the queue size exceeds 
configurable "batch size", processing of collection of these records (in size 
of batch size) is triggered. Batch of log events is transformed by converter to 
ATOM element and then it is pushed out b
 y deliverer to client. Both converter and deliverer are configurable units 
that allow to change transformation and transportation strategies. Next to 
predefined own custom implementations can be used when necessary &#8211; see 
examples. Batches are processed sequentially to allow client side to recreate 
stream of events.</p><p><strong>Limitations:</strong> Reliability is not 
supported out of the box, however there is predefined retrying delivery 
strategy. Persistence is also not supported, any enqueued and undelivered log 
events are lost on shutdown. Definitions of delivery endpoints is static, 
subscription of callback URIs is not yet supported.</p><h3 
id="ATOMLogging-Springconfiguration">Spring configuration</h3><p>In simplest 
case pushing ATOM Feeds can be declared this way:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="url" value="http://somewhere.com/foo/bar"/&gt;
        &lt;property name="level" value="ALL" /&gt;
    &lt;/bean&gt;
 </pre>
 </div></div><p>Spring bean creates ATOM push handler and registers it with 
root logger for all log levels. This setup leads to logging everything CXF, 
Spring and others included. Since batch size is not specified default value of 
one is used - each event is packed up as single feed pushed out to specified 
URL. Default conversion strategy and default WebClient-based deliver are 
used.</p><p>More complex example shows how to specify non-root logger and 
define batch size:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="url" value="http://somewhere.com/foo/bar"/&gt;
        &lt;property name="logger" value="org.apache.cxf.jaxrs" /&gt;
        &lt;property name="level" value="INFO" /&gt;
@@ -133,7 +133,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><p>To push to client events generated by different loggers on 
different levels, "loggers" property must be used instead of pair "logger" and 
"level":</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.jaxrs.management.web.atom.AtomPushBean" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.jaxrs.management.web.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="url" value="http://somewhere.com/foo/bar"/&gt;
        &lt;property name="loggers" value="
            org.apache.cxf:DEBUG,
@@ -143,7 +143,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><p>In example above, second logger does not have specified level, 
in such case default level of "INFO" is used.</p><p>In all above cases, when 
first delivery fails engine of ATOM push handler is shutdown and no events will 
be processed and pushed until configuration reload. To avoid this frequent 
case, retrial can be enabled:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="url" value="http://somewhere.com/foo/bar"/&gt;
        &lt;property name="logger" value="org.apache.cxf.jaxrs" /&gt;
        &lt;property name="level" value="INFO" /&gt;
@@ -153,7 +153,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><p>In this case for 5 minutes ("retryTimeout") after delivery 
failure there will be 1 minute pause ("retryPauseTime") repeated every time 
with same value ("retryPause" as "linear"). Instead of same pause time, 
"exponential" value of "retryPause" can be used - each next time pause time 
doubles. When timeout value is set to 0 retrying is infinite. In case of 
invalid or missing values defaults are used: for pause time 30 seconds and for 
timeout 0 (infinite). Instead of same pause time, "exponential" value of 
"retryPauseType" can be used - each next time pause time doubles. When timeout 
value is set to 0 retrying is infinite. In case of invalid or missing values 
defaults are used: for pause time 30 seconds and for timeout 0 
(infinite).</p><p>Ultimate control is given by "converter" and "deliverer" 
properties. Either beans of predefined or custom classes can be used (see 
"Programming syle" chapter for more details). Example below shows custom class 
using different transport p
 rotocol than default:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean id="soapDeliverer" ...
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean id="soapDeliverer" ...
    ...
    &lt;bean class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="deliverer"&gt;
@@ -163,7 +163,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><p>Note that specifying custom deliverer cause ignoring "url" and 
"retryXxx" because underneath configuration replaces employed tandem of 
RetryingDeliverer and WebClientDeliverer with provided one.</p><p>When ATOM 
feeds must be delivered to more than one endpoint and additionally each 
endpoint is fed by different loggers simply use multiple ATOM push beans in 
Spring config:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean id="atom1" 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean id="atom1" 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="url" value="http://someplace.com/foo/bar"/&gt;
        ...
    &lt;/bean&gt;
@@ -174,7 +174,7 @@ Apache CXF -- ATOM Logging
    ....
 </pre>
 </div></div><h3 id="ATOMLogging-Propertiesfile">Properties file</h3><p>When 
CXF is used either without Spring or logging is configured with properties 
file, support for this type of configuration becomes handy. ATOM push handler 
supports "simple configuration" with properties file; simple means aligned to 
expressiveness of JUL configuration that is limited to cases, where each type 
of handler can be used only once and registered with root logger.</p><p>Set of 
properties is very similar to Spring configuration with following 
exceptions:</p><ul><li>Properties specify classes of custom deliverers and 
converters, instead of instances.</li><li>Custom deliverer must have public 
constructor with the only String parameters; created instance will have passed 
URL of client.</li><li>Multiple client endpoints is not supported out of the 
box (cannot instantiate multiple handlers as in 
Spring)</li></ul><p>Example:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent p
 anelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;"> handlers = 
org.apache.cxf.management.web.logging.atom.AtomPushHandler, 
java.util.logging.ConsoleHandler
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;"> handlers = 
org.apache.cxf.management.web.logging.atom.AtomPushHandler, 
java.util.logging.ConsoleHandler
  .level = INFO
  ...
  org.apache.cxf.jaxrs.ext.management.web.AtomPushHandler.url = 
http://localhost:9080
@@ -187,7 +187,7 @@ Apache CXF -- ATOM Logging
  ...
 </pre>
 </div></div><h3 id="ATOMLogging-Programmingstyle">Programming style</h3><p>In 
most complex cases direct programming using <code><a shape="rect" 
href="http://cxf.apache.org/javadoc/latest/org/apache/cxf/management/web/logging/atom/package-summary.html";>org.apache.cxf.jaxrs.ext.logging.atom</a></code>
 package may be necessary. In this case AtomPushHandler class is main artifact 
and Deliverer and Converter interfaces and their implementations are necessary 
components.</p><p>Following example:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">    Deliverer d = new 
WebClientDeliverer("http://somewhere.com/foo/bar";);
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">    Deliverer d = new 
WebClientDeliverer("http://somewhere.com/foo/bar";);
     d = new RetryingDeliverer(d, 300, 60, true);
     Converter c = new SingleEntryContentConverter();
     AtomPushHandler h = new AtomPushHandler(1, c, d);    
@@ -196,7 +196,7 @@ Apache CXF -- ATOM Logging
     l.addHandler(h);
 </pre>
 </div></div><p>is equivalent to Spring configuration:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPushBean" 
init-method="init"&gt;
        &lt;property name="url" value="http://somewhere.com/foo/bar"/&gt;
        &lt;property name="logger" value="org.apache.cxf.jaxrs" /&gt;
        &lt;property name="level" value="INFO" /&gt;
@@ -206,7 +206,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><h2 id="ATOMLogging-PollStyle">Poll Style</h2><p><a shape="rect" 
class="external-link" 
href="http://svn.apache.org/repos/asf/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/logging/atom/AtomPullServer.java";>AtomPullServer</a>
 acts as an Atom feed endpoint and makes all log events it has accumulated or 
read from some external storage available for polling.</p><p>Log events are 
made available in pages, that is a feed instance will list up to a configurable 
maximum number of entries and will also include atom links of types 'prev', 
'next', 'first' and 'last', thus making it possible to browse through all the 
log records.</p><h3 id="ATOMLogging-Springconfiguration.1">Spring 
configuration</h3><p>When configuring AtomPullServer endpoints, one can set the 
'loggers' property the same way as it is done for AtomPushBeans, for example 
:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPullServer" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean 
class="org.apache.cxf.management.web.logging.atom.AtomPullServer" 
init-method="init"&gt;
        &lt;property name="loggers" value="
            org.apache.cxf:DEBUG,
            org.apache.cxf.jaxrs,
@@ -216,7 +216,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><p>In addition to the 'loggers' property, a 'pageSize' property 
limiting a number of entries per page to 30 is also set (default is 
40).</p><p>One can have a <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/logging/ReadWriteLogStorage.java";>ReadWriteLogStorage</a>
 bean injected into AtomPushBean if the log records have to be periodically 
offloaded from memory and persisted across restarts :</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">   &lt;bean id="storage" 
class="org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPullSpringTest$Storage"/&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">   &lt;bean id="storage" 
class="org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPullSpringTest$Storage"/&gt;
 
    &lt;bean class="org.apache.cxf.management.web.logging.atom.AtomPullServer" 
init-method="init"&gt;
        &lt;property name="loggers" value="org.apache.cxf.jaxrs" /&gt;
@@ -227,7 +227,7 @@ Apache CXF -- ATOM Logging
    &lt;/bean&gt;
 </pre>
 </div></div><p>When a number of records in memory reaches 400 (default is 500) 
then the records will be offloaded into a provided storage and will be read 
from it after the restart or when a client has requested a relevant page. If no 
storage is available then after an in-memory limit is reached the oldest 
records will be discarded, one can set a maxInMemorySize property to a large 
enough value if needed.</p><p>Another option is to require a given 
AtomPullServer to read from the external read-only storage by registering a <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/cxf/trunk/rt/management-web/src/main/java/org/apache/cxf/management/web/logging/ReadableLogStorage.java";>ReadableLogStorage</a>
 bean. For example, very often, the runtime is already logging to some external 
file, thus AtomPullServer can be asked to read from this file only with the 
help of ReadableLogStorage, without AtomPullServer having to catch log events 
too.</p><p>Once AtomPullServer h
 as been configured, it has to be registered as a service bean with the jaxrs 
endpoint so that Atom aware clients (blog readers, etc) can start polling it 
:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;jaxrs:server id="atomServer" address="/atom"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;jaxrs:server id="atomServer" address="/atom"&gt;
  &lt;jaxrs:serviceBeans&gt;
    &lt;ref bean="atomPullServer"/&gt;
  &lt;/jaxrs:serviceBeans&gt;
@@ -242,7 +242,7 @@ Apache CXF -- ATOM Logging
 &lt;bean id="entry" 
class="org.apache.cxf.jaxrs.provider.AtomEntryProvider"/&gt;
 </pre>
 </div></div><h3 
id="ATOMLogging-LinkingtoAtomendpointsfromCXFServicespage">Linking to Atom 
endpoints from CXF Services page</h3><p>If you would like your users to find 
about the Atom feeds which are collecting log events from your endpoints then 
AtomPullServers will need to have a CXF bus injected, as well as be told about 
the address of the corresponding atom feed endpoint and of the jaxrs or jaxws 
endpoint :</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">&lt;bean id="atomPullServer" 
class="org.apache.cxf.management.web.logging.atom.AtomPullServer" 
init-method="init"&gt;
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;bean id="atomPullServer" 
class="org.apache.cxf.management.web.logging.atom.AtomPullServer" 
init-method="init"&gt;
    &lt;property name="loggers" 
value="org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPullSpringTest$Resource:ALL"/&gt;
    &lt;property name="bus"&gt;
       &lt;ref bean="cxf"/&gt;

Modified: 
websites/production/cxf/content/docs/bundling-cxf-into-single-jar-with-maven-shade-plugin.html
==============================================================================
--- 
websites/production/cxf/content/docs/bundling-cxf-into-single-jar-with-maven-shade-plugin.html
 (original)
+++ 
websites/production/cxf/content/docs/bundling-cxf-into-single-jar-with-maven-shade-plugin.html
 Wed Sep 13 15:05:52 2017
@@ -171,7 +171,7 @@ Apache CXF -- Bundling CXF into single j
 
     <span class="jira-issue CXF-6545"><a shape="rect" class="issue-link" 
href="https://issues.apache.org/jira/browse/CXF-6545?src=confmacro";>CXF-6545</a></span>
 <br clear="none"><br clear="none"></li></ol><p>The fix is to use the Maven 
Shade Plugin's AppendingTransformer to combine all the copies of the 
bus-extensions.txt file present in the jars. See these examples here:</p><p><a 
shape="rect" class="external-link" 
href="https://fisheye6.atlassian.com/browse/cxf/osgi/bundle/all/pom.xml?r=12acd46e3dbe98fa1321374b09174d5876271f08#to448";
 
rel="nofollow">https://fisheye6.atlassian.com/browse/cxf/osgi/bundle/all/pom.xml?r=12acd46e3dbe98fa1321374b09174d5876271f08#to448</a></p><p><a
 shape="rect" class="external-link" 
href="https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer";>https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer</a></p><p>You
 can handle it with the plugin configuration for the Shade plugin e.g., like 
this:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom
 -width: 1px;"><b>Shade Plugin Example</b></div><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: true; first-line: 1; theme: Confluence" 
style="font-size:12px;">&lt;plugin&gt;
+<pre class="brush: xml; gutter: true; first-line: 1; theme: Default" 
style="font-size:12px;">&lt;plugin&gt;
 &lt;artifactId&gt;maven-shade-plugin&lt;/artifactId&gt;
 &lt;executions&gt;
 &lt;execution&gt;

Modified: websites/production/cxf/content/docs/bus-configuration.html
==============================================================================
--- websites/production/cxf/content/docs/bus-configuration.html (original)
+++ websites/production/cxf/content/docs/bus-configuration.html Wed Sep 13 
15:05:52 2017
@@ -32,9 +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/shBrushXml.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();
@@ -129,7 +129,7 @@ Apache CXF -- Bus Configuration
 <p>Here, simply define a bus element in your Spring configuration file, and 
add child elements as required, for example:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 &lt;beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:cxf="http://cxf.apache.org/core";
@@ -160,7 +160,7 @@ http://www.springframework.org/schema/be
 <p>Although usually less convenient, interceptors can be added to the bus 
using Java code.  Given an <a shape="rect" 
href="http://cxf.apache.org/javadoc/latest/org/apache/cxf/jaxws/EndpointImpl.html";>EndpointImpl</a>
 object, the bus can be accessed (and interceptors added) as follows:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 import javax.xml.ws.Endpoint;
 import org.apache.cxf.interceptor.LoggingInInterceptor;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;

Modified: websites/production/cxf/content/docs/celtix-migration-guide.html
==============================================================================
--- websites/production/cxf/content/docs/celtix-migration-guide.html (original)
+++ websites/production/cxf/content/docs/celtix-migration-guide.html Wed Sep 13 
15:05:52 2017
@@ -32,8 +32,8 @@
 <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/shBrushJava.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -127,7 +127,7 @@ Apache CXF -- Celtix Migration Guide
 
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 SpringBusFactory bf = new SpringBusFactory();
     Bus bus = bf.createBus("ws_rm.xml");
     bf.setDefaultBus(bus);
@@ -135,7 +135,7 @@ SpringBusFactory bf = new SpringBusFacto
 </div></div>
 <p> Later, to get the bus, you can call:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 Bus bus = bf.getDefaultBus();
 </pre>
 </div></div>
@@ -146,7 +146,7 @@ Bus bus = bf.getDefaultBus();
 
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: bash; gutter: false; theme: Confluence" 
style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
 HelloWorld helloWorld = helloWorldService.getPort(
                         new QName("http://www.my/wsdl/target/namespace";, 
"SOAPOverHTTPEndpoint"),
                                     HelloWorld.class );


Reply via email to