cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r906502 [2/7] - in /websites/production/cxf/content: cache/ docs/
Date Tue, 22 Apr 2014 12:47:36 GMT
Modified: websites/production/cxf/content/docs/debugging-and-logging.html
==============================================================================
--- websites/production/cxf/content/docs/debugging-and-logging.html (original)
+++ websites/production/cxf/content/docs/debugging-and-logging.html Tue Apr 22 12:47:36 2014
@@ -118,16 +118,14 @@ Apache CXF -- Debugging and Logging
          <td height="100%">
            <!-- Content -->
            <div class="wiki-content">
-<div id="ConfluenceContent"><p></p><p><span style="font-size:2em;font-weight:bold"> Debugging and Logging </span></p><p></p><p></p>
+<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><span style="font-size:2em;font-weight:bold"> Debugging and Logging </span><p>&#160;</p><p>&#160;</p><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1398170819606 {padding: 0px;}
+div.rbtoc1398170819606 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1398170819606 li {margin-left: 0px;padding-left: 0px;}
 
-<style type="text/css">/*<![CDATA[*/
-div.rbtoc1396468199332 {padding: 0px;}
-div.rbtoc1396468199332 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1396468199332 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style><div class="toc-macro rbtoc1396468199332">
+/*]]>*/</style></p><div class="toc-macro rbtoc1398170819606">
 <ul class="toc-indentation"><li><a shape="rect" href="#DebuggingandLogging-LoggingMessages">Logging Messages</a>
-<ul class="toc-indentation"><li><a shape="rect" href="#DebuggingandLogging-Configurelogginglevels.">Configure logging levels.</a></li><li><a shape="rect" href="#DebuggingandLogging-UsingLog4jInsteadofjava.util.logging">Using Log4j Instead of java.util.logging</a></li><li><a shape="rect" href="#DebuggingandLogging-UsingSLF4JInsteadofjava.util.logging(since2.2.8)">Using SLF4J Instead of java.util.logging (since 2.2.8)</a></li></ul>
+<ul class="toc-indentation"><li><a shape="rect" href="#DebuggingandLogging-Configuringlogginglevels">Configuring logging levels</a></li><li><a shape="rect" href="#DebuggingandLogging-UsingLog4jInsteadofjava.util.logging">Using Log4j Instead of java.util.logging</a></li><li><a shape="rect" href="#DebuggingandLogging-UsingSLF4JInsteadofjava.util.logging(since2.2.8)">Using SLF4J Instead of java.util.logging (since 2.2.8)</a></li></ul>
 </li><li><a shape="rect" href="#DebuggingandLogging-DebuggingTools">Debugging Tools</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#DebuggingandLogging-EclipseIDE">Eclipse IDE</a></li><li><a shape="rect" href="#DebuggingandLogging-NetBeansIDE">NetBeans IDE</a></li><li><a shape="rect" href="#DebuggingandLogging-tcpmonandtcptrace">tcpmon and tcptrace</a></li><li><a shape="rect" href="#DebuggingandLogging-WSMonitor">WSMonitor</a></li><li><a shape="rect" href="#DebuggingandLogging-NetSniffer">NetSniffer</a></li><li><a shape="rect" href="#DebuggingandLogging-Wireshark">Wireshark</a></li><li><a shape="rect" href="#DebuggingandLogging-SOAPUI">SOAP UI</a></li></ul>
 </li><li><a shape="rect" href="#DebuggingandLogging-OtherHelpfulTools">Other Helpful Tools</a>
@@ -141,23 +139,8 @@ div.rbtoc1396468199332 li {margin-left: 
 <ul class="toc-indentation"><li><a shape="rect" href="#DebuggingandLogging-Springconfiguration.1">Spring configuration</a></li><li><a shape="rect" href="#DebuggingandLogging-LinkingtoAtomendpointsfromCXFServicespage">Linking to Atom endpoints from CXF Services page</a></li></ul>
 </li></ul>
 </li></ul>
-</div>
-
-<h1 id="DebuggingandLogging-LoggingMessages">Logging Messages</h1>
-
-<p>CXF uses <a shape="rect" class="external-link" href="http://www.oracle.com/technology/pub/articles/hunter_logging.html" rel="nofollow">Java SE Logging</a> for both client- and server-side logging of SOAP requests and responses.  Logging is activated by use of separate in/out interceptors that can be attached to the client and/or service as required.  These interceptors can be specified either programmatically (via Java code and/or annotations) or via use of configuration files.</p>
-
-<p>Configuration files are probably best.  They offer two benefits over programmatic configuration:  </p>
-<ol><li>Logging requirements can be altered without needing to recompile the code</li><li>No Apache CXF-specific APIs need to be added to your code, which helps it remain interoperable with other JAX-WS compliant web service stacks</li></ol>
-
-
-<p>Enabling message logging through configuration files is shown <a shape="rect" href="http://cxf.apache.org/docs/configuration.html">here</a>.  </p>
-
-<p>For programmatic configuration, the logging interceptors can be added to your service endpoint as follows:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-import javax.xml.ws.Endpoint;
+</div><h1 id="DebuggingandLogging-LoggingMessages">Logging Messages</h1><p>CXF uses <a shape="rect" class="external-link" href="http://www.oracle.com/technology/pub/articles/hunter_logging.html" rel="nofollow">Java SE Logging</a> for both client- and server-side logging of SOAP requests and responses. Logging is activated by use of separate in/out interceptors that can be attached to the client and/or service as required. These interceptors can be specified either programmatically (via Java code and/or annotations) or via use of configuration files.</p><p>Configuration files are probably best. They offer two benefits over programmatic configuration:</p><ol><li>Logging requirements can be altered without needing to recompile the code</li><li>No Apache CXF-specific APIs need to be added to your code, which helps it remain interoperable with other JAX-WS compliant web service stacks</li></ol><p>Enabling message logging through configuration files is shown <a shape="rect" href="http://c
 xf.apache.org/docs/configuration.html">here</a>.</p><p>For programmatic configuration, the logging interceptors can be added to your service endpoint as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import javax.xml.ws.Endpoint;
 import org.apache.cxf.interceptor.LoggingInInterceptor;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.EndpointImpl;
@@ -168,26 +151,15 @@ EndpointImpl ep = (EndpointImpl) Endpoin
 ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
 ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
 ]]></script>
-</div></div>
-
-
-<p>For web services running on CXFServlet, the below annotations can be used on either the SEI or the SEI implementation class.  If placed on the SEI, they activate logging both for client and server; if on the SEI implementation class, they are relevant just for server-side logging.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-import org.apache.cxf.feature.Features;
+</div></div><p>For web services running on CXFServlet, the below annotations can be used on either the SEI or the SEI implementation class. If placed on the SEI, they activate logging both for client and server; if on the SEI implementation class, they are relevant just for server-side logging.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import org.apache.cxf.feature.Features;
 
 @javax.jws.WebService(portName = &quot;MyWebServicePort&quot;, serviceName = &quot;MyWebService&quot;, ...)
 @Features(features = &quot;org.apache.cxf.feature.LoggingFeature&quot;)        
 public class MyWebServicePortTypeImpl implements MyWebServicePortType {
 ]]></script>
-</div></div>
-
-<p>or (equivalent)</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-import org.apache.cxf.interceptor.InInterceptors;
+</div></div><p>or (equivalent)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import org.apache.cxf.interceptor.InInterceptors;
 import org.apache.cxf.interceptor.OutInterceptors;
 
 @javax.jws.WebService(portName = &quot;WebServicePort&quot;, serviceName = &quot;WebServiceService&quot;, ...)
@@ -195,14 +167,8 @@ import org.apache.cxf.interceptor.OutInt
 @OutInterceptors(interceptors = &quot;org.apache.cxf.interceptor.LoggingOutInterceptor&quot;)
 public class WebServicePortTypeImpl implements WebServicePortType {
 ]]></script>
-</div></div>
-
-
-<p>For programmatic client-side logging, the following code snippet can be used as an example:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-import org.apache.cxf.endpoint.Client;
+</div></div><p>For programmatic client-side logging, the following code snippet can be used as an example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.frontend.ClientProxy;
 import org.apache.cxf.interceptor.LoggingInInterceptor;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;
@@ -218,24 +184,12 @@ public class WSClient {
         
         // make WS calls...
 ]]></script>
-</div></div>
-
-<h2 id="DebuggingandLogging-Configurelogginglevels.">Configure logging levels. </h2>
-
-<p>In the <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/etc/">/etc folder</a> of the CXF distribution there is a sample Java SE logging.properties file you can use to configure logging.  For example, if you want to change the console logging level from WARNING to FINE, you need to update two properties in this logging.properties file as below:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-.level= FINE
+</div></div><h2 id="DebuggingandLogging-Configuringlogginglevels">Configuring logging levels</h2><p>In the <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/etc/">/etc folder</a> of the CXF distribution there is a sample Java SE logging.properties file you can use to configure logging. For example, if you want to change the console logging level from WARNING to FINE, you need to update two properties in this logging.properties file as below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[.level= FINE
 java.util.logging.ConsoleHandler.level = FINE
 ]]></script>
-</div></div>
-
-<p>Once this is done, you will need to set the <strong>-Djava.util.logging.config.file</strong> property to the location of the logging.properties file.  As an example, the Ant target below has this property set:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;target name=&quot;runClient&quot;&gt;
+</div></div><p>Once this is done, you will need to set the <strong>-Djava.util.logging.config.file</strong> property to the location of the logging.properties file. As an example, the Ant target below has this property set:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;target name=&quot;runClient&quot;&gt;
    &lt;java classname=&quot;client.WSClient&quot; fork=&quot;true&quot;&gt;	    	
       &lt;classpath&gt;
          &lt;pathelement location=&quot;${build.classes.dir}&quot;/&gt;
@@ -247,94 +201,20 @@ java.util.logging.ConsoleHandler.level =
    &lt;/java&gt;
 &lt;/target&gt;
 ]]></script>
-</div></div>
-
-<p>Alternatively, for SOAP clients, you can modify the Java-wide logging.properties file in the JDK_HOME/jre/lib folder, or for servlet-hosted web service providers, placing a logging.properties file in the WEB-INF/classes folder (see <a shape="rect" class="external-link" href="http://tomcat.apache.org/tomcat-6.0-doc/logging.html">here</a> for more details.)</p>
-
-<h2 id="DebuggingandLogging-UsingLog4jInsteadofjava.util.logging">Using Log4j Instead of java.util.logging </h2>
-
-<p>As noted above, CXF uses the <code>java.util.logging</code> package by default. But it is possible to switch CXF to instead use <a shape="rect" class="external-link" href="http://logging.apache.org/log4j/">Log4J</a>. This is achieved through the use of configuration files. There are two options to bootstrapping CXF logging and each is listed below: </p>
-
-<ul><li>Add the following system property to the classpath from which CXF is initialized:</li></ul>
-
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger
+</div></div><p>Alternatively, for SOAP clients, you can modify the Java-wide logging.properties file in the JDK_HOME/jre/lib folder, or for servlet-hosted web service providers, placing a logging.properties file in the WEB-INF/classes folder (see <a shape="rect" class="external-link" href="http://tomcat.apache.org/tomcat-6.0-doc/logging.html">here</a> for more details.)</p><h2 id="DebuggingandLogging-UsingLog4jInsteadofjava.util.logging">Using Log4j Instead of java.util.logging</h2><p>As noted above, CXF uses the <code>java.util.logging</code> package ("Java SE Logging") by default. But it is possible to switch CXF to instead use <a shape="rect" class="external-link" href="http://logging.apache.org/log4j/">Log4J</a>. This is achieved through the use of configuration files. There are two options to bootstrapping CXF logging and each is listed below:</p><ul><li>Add the following system property to the classpath from which CXF is initialized:</li></ul><div class="code panel pdl" style=
 "border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger
 ]]></script>
-</div></div>
-
-<ul><li>Add the file <code>META-INF/cxf/org.apache.cxf.Logger</code> to the classpath and make sure it contains the following content:</li></ul>
-
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.cxf.common.logging.Log4jLogger
+</div></div><ul><li>Add the file <code>META-INF/cxf/org.apache.cxf.Logger</code> to the classpath and make sure it contains the following content:</li></ul><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[org.apache.cxf.common.logging.Log4jLogger
 ]]></script>
-</div></div>
-
-<h2 id="DebuggingandLogging-UsingSLF4JInsteadofjava.util.logging(since2.2.8)">Using SLF4J Instead of java.util.logging (since 2.2.8)</h2>
-
-<p>As noted above, CXF uses the <code>java.util.logging</code> package by default. But it is possible to switch CXF to instead use <a shape="rect" class="external-link" href="http://www.slf4j.org/" rel="nofollow">SLF4J</a>. This is achieved through the use of configuration files. There are two options to bootstrapping CXF logging and each is listed below: </p>
-
-<ul><li>Add the following system property to the classpath from which CXF is initialized:</li></ul>
-
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Slf4jLogger
+</div></div><h2 id="DebuggingandLogging-UsingSLF4JInsteadofjava.util.logging(since2.2.8)">Using SLF4J Instead of java.util.logging (since 2.2.8)</h2><p>As noted above, CXF uses the <code>java.util.logging</code> package by default. But it is possible to switch CXF to instead use <a shape="rect" class="external-link" href="http://www.slf4j.org/" rel="nofollow">SLF4J</a>. This is achieved through the use of configuration files. There are two options to bootstrapping CXF logging and each is listed below:</p><ul><li>Add the following system property to the classpath from which CXF is initialized:</li></ul><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Slf4jLogger
 ]]></script>
-</div></div>
-
-<ul><li>Add the file <code>META-INF/cxf/org.apache.cxf.Logger</code> to the classpath and make sure it contains the following content:</li></ul>
-
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.apache.cxf.common.logging.Slf4jLogger
+</div></div><ul><li>Add the file <code>META-INF/cxf/org.apache.cxf.Logger</code> to the classpath and make sure it contains the following content:</li></ul><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[org.apache.cxf.common.logging.Slf4jLogger
 ]]></script>
-</div></div>
-
-
-
-<h1 id="DebuggingandLogging-DebuggingTools">Debugging Tools</h1>
-
-<h2 id="DebuggingandLogging-EclipseIDE">Eclipse IDE</h2>
-
-<p>See this <a shape="rect" class="external-link" href="http://www.jroller.com/gmazza/entry/eclipse_debug_web_services" rel="nofollow">blog entry</a> for information on debugging web services using Eclipse.  Note this is primarily for tracing/debugging source code; you will probably still want to use one of the tools below to capture network traffic, view SOAP requests and responses, etc.</p>
-
-<h2 id="DebuggingandLogging-NetBeansIDE">NetBeans IDE</h2>
-<p>NetBeans include a <a shape="rect" class="external-link" href="http://www.netbeans.org/features/java/debugger.html" rel="nofollow">debugger</a>, <a shape="rect" class="external-link" href="http://www.netbeans.org/features/java/profiler.html" rel="nofollow">profiler</a> and an HTTP monitor that can assist in troubleshooting SOA applications.</p>
-
-<h2 id="DebuggingandLogging-tcpmonandtcptrace">tcpmon and tcptrace</h2>
-<p><a shape="rect" class="external-link" href="http://tcpmon.dev.java.net" rel="nofollow">tcpmon</a> allows you to easily view messages as they go back and forth on the wire. The companion utility <a shape="rect" class="external-link" href="http://www.tcptrace.org" rel="nofollow">tcptrace</a> can be used for analysis of the dump.</p>
-
-<h2 id="DebuggingandLogging-WSMonitor">WSMonitor</h2>
-<p><a shape="rect" class="external-link" href="https://wsmonitor.dev.java.net/" rel="nofollow">WSMonitor</a> in another option to Tcpmon with slightly more functionality.</p>
-
-<h2 id="DebuggingandLogging-NetSniffer">NetSniffer</h2>
-<p><a shape="rect" class="external-link" href="http://www.miray.de/products/sat.netsniffer.html" rel="nofollow">NetSniffer</a> makes it possible to track the network traffic between arbitrary devices within a LAN segment.</p>
-
-<h2 id="DebuggingandLogging-Wireshark">Wireshark</h2>
-<p><a shape="rect" class="external-link" href="http://www.wireshark.org/" rel="nofollow">Wireshark</a>, a network packet analyzer, is useful for following the routing of SOAP messages.  It can also help when you are getting an HTML error message from the server that your CXF client cannot normally process, by allowing you to see the non-SOAP error message.  See this <a shape="rect" class="external-link" href="http://www.jroller.com/gmazza/entry/soap_calls_over_wireshark" rel="nofollow">blog entry</a> for more information.</p>
-
-<h2 id="DebuggingandLogging-SOAPUI">SOAP UI</h2>
-<p><a shape="rect" class="external-link" href="http://soapui.org" rel="nofollow">SOAP UI</a> can also be used for debugging. In addition to viewing messages, it allows you send messages and load test your services. It also has plugins for the <a shape="rect" class="external-link" href="http://soapui.org/IDE-Plugins/eclipse-plugin.html" rel="nofollow">Eclipse IDE</a>, <a shape="rect" class="external-link" href="http://www.soapui.org/IDE-Plugins/netbean.html" rel="nofollow">NetBeans IDE</a> and <a shape="rect" class="external-link" href="http://www.soapui.org/IDE-Plugins/intellij.html" rel="nofollow">IntelliJ IDEA</a>.</p>
-
-<h1 id="DebuggingandLogging-OtherHelpfulTools">Other Helpful Tools</h1>
-
-<h2 id="DebuggingandLogging-WSDLViewer">WSDL Viewer</h2>
-<p><a shape="rect" class="external-link" href="http://tomi.vanek.sk/index.php?page=wsdl-viewer" rel="nofollow">WSDL Viewer</a> is a small tool to visualize web-services in a more intuitive way. </p>
-
-<h1 id="DebuggingandLogging-SOAPFaultfordebugging">SOAP Fault for debugging</h1>
-
-<p><strong>This feature is available since CXF 2.3.4</strong></p>
-
-<h2 id="DebuggingandLogging-Stacktraceinfaultdetails">Stack trace in fault details</h2>
-<p>CXF supports the ability to put server stack trace information into the fault message fault details, if you enable the option of 'faultStackTraceEnabled'. It is useful for debugging if the soap fault message is not defined in the WSDL operation.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;jaxws:endpoint id=&quot;server&quot; address=&quot;http://localhost:9002/TestMessage&quot; 
+</div></div><h1 id="DebuggingandLogging-DebuggingTools">Debugging Tools</h1><h2 id="DebuggingandLogging-EclipseIDE">Eclipse IDE</h2><p>See this <a shape="rect" class="external-link" href="http://www.jroller.com/gmazza/entry/eclipse_debug_web_services" rel="nofollow">blog entry</a> for information on debugging web services using Eclipse. Note this is primarily for tracing/debugging source code; you will probably still want to use one of the tools below to capture network traffic, view SOAP requests and responses, etc.</p><h2 id="DebuggingandLogging-NetBeansIDE">NetBeans IDE</h2><p>NetBeans include a <a shape="rect" class="external-link" href="http://www.netbeans.org/features/java/debugger.html" rel="nofollow">debugger</a>, <a shape="rect" class="external-link" href="http://www.netbeans.org/features/java/profiler.html" rel="nofollow">profiler</a> and an HTTP monitor that can assist in troubleshooting SOA applications.</p><h2 id="DebuggingandLogging-tcpmonandtcptrace">tcpmon and tcptra
 ce</h2><p><a shape="rect" class="external-link" href="http://tcpmon.dev.java.net" rel="nofollow">tcpmon</a> allows you to easily view messages as they go back and forth on the wire. The companion utility <a shape="rect" class="external-link" href="http://www.tcptrace.org" rel="nofollow">tcptrace</a> can be used for analysis of the dump.</p><h2 id="DebuggingandLogging-WSMonitor">WSMonitor</h2><p><a shape="rect" class="external-link" href="https://wsmonitor.dev.java.net/" rel="nofollow">WSMonitor</a> in another option to Tcpmon with slightly more functionality.</p><h2 id="DebuggingandLogging-NetSniffer">NetSniffer</h2><p><a shape="rect" class="external-link" href="http://www.miray.de/products/sat.netsniffer.html" rel="nofollow">NetSniffer</a> makes it possible to track the network traffic between arbitrary devices within a LAN segment.</p><h2 id="DebuggingandLogging-Wireshark">Wireshark</h2><p><a shape="rect" class="external-link" href="http://www.wireshark.org/" rel="nofollow">Wiresh
 ark</a>, a network packet analyzer, is useful for following the routing of SOAP messages. It can also help when you are getting an HTML error message from the server that your CXF client cannot normally process, by allowing you to see the non-SOAP error message. See this <a shape="rect" class="external-link" href="http://www.jroller.com/gmazza/entry/soap_calls_over_wireshark" rel="nofollow">blog entry</a> for more information.</p><h2 id="DebuggingandLogging-SOAPUI">SOAP UI</h2><p><a shape="rect" class="external-link" href="http://soapui.org" rel="nofollow">SOAP UI</a> can also be used for debugging. In addition to viewing messages, it allows you send messages and load test your services. It also has plugins for the <a shape="rect" class="external-link" href="http://soapui.org/IDE-Plugins/eclipse-plugin.html" rel="nofollow">Eclipse IDE</a>, <a shape="rect" class="external-link" href="http://www.soapui.org/IDE-Plugins/netbean.html" rel="nofollow">NetBeans IDE</a> and <a shape="rect" c
 lass="external-link" href="http://www.soapui.org/IDE-Plugins/intellij.html" rel="nofollow">IntelliJ IDEA</a>.</p><h1 id="DebuggingandLogging-OtherHelpfulTools">Other Helpful Tools</h1><h2 id="DebuggingandLogging-WSDLViewer">WSDL Viewer</h2><p><a shape="rect" class="external-link" href="http://tomi.vanek.sk/index.php?page=wsdl-viewer" rel="nofollow">WSDL Viewer</a> is a small tool to visualize web-services in a more intuitive way.</p><h1 id="DebuggingandLogging-SOAPFaultfordebugging">SOAP Fault for debugging</h1><p><strong>This feature is available since CXF 2.3.4</strong></p><h2 id="DebuggingandLogging-Stacktraceinfaultdetails">Stack trace in fault details</h2><p>CXF supports the ability to put server stack trace information into the fault message fault details, if you enable the option of 'faultStackTraceEnabled'. It is useful for debugging if the soap fault message is not defined in the WSDL operation.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeConte
 nt panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;jaxws:endpoint id=&quot;server&quot; address=&quot;http://localhost:9002/TestMessage&quot; 
    wsdlURL=&quot;ship.wsdl&quot;
    endpointName=&quot;s:TestSoapEndpoint&quot;
    serviceName=&quot;s:TestService&quot;
@@ -344,13 +224,8 @@ org.apache.cxf.common.logging.Slf4jLogge
    &lt;/jaxws:properties&gt;
 &lt;/jaxws:endpoint&gt;
 ]]></script>
-</div></div>
-
-<h2 id="DebuggingandLogging-Showingthecauseexceptionmessage">Showing the cause exception message</h2>
-<p>CXF doesn't show the cause exception message in the fault message due to security consideration. However, this could potentially cause some trouble on the client side, as the client will not be able to see what the real cause of the exception is. You can let the CXF server return the fault message with the embedded cause exception message by enabling the option of 'exceptionMessageCauseEnabled' like this:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;jaxws:endpoint id=&quot;server&quot; address=&quot;http://localhost:9002/TestMessage&quot; 
+</div></div><h2 id="DebuggingandLogging-Showingthecauseexceptionmessage">Showing the cause exception message</h2><p>CXF doesn't show the cause exception message in the fault message due to security consideration. However, this could potentially cause some trouble on the client side, as the client will not be able to see what the real cause of the exception is. You can let the CXF server return the fault message with the embedded cause exception message by enabling the option of 'exceptionMessageCauseEnabled' like this:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;jaxws:endpoint id=&quot;server&quot; address=&quot;http://localhost:9002/TestMessage&quot; 
    wsdlURL=&quot;ship.wsdl&quot;
    endpointName=&quot;s:TestSoapEndpoint&quot;
    serviceName=&quot;s:TestService&quot;
@@ -360,51 +235,22 @@ org.apache.cxf.common.logging.Slf4jLogge
    &lt;/jaxws:properties&gt;
 &lt;/jaxws:endpoint&gt;
 ]]></script>
-</div></div>
-
-
-<h1 id="DebuggingandLogging-ATOMlogging">ATOM logging</h1>
-
-<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="DebuggingandLogging-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 by 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="DebuggingandLogging-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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
+</div></div><h1 id="DebuggingandLogging-ATOMlogging">ATOM logging</h1><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="DebuggingandLogging-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 con
 verter to ATOM element and then it is pushed out by 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="DebuggingandLogging-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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;url&quot; value=&quot;http://somewhere.com/foo/bar&quot;/&gt;
        &lt;property name=&quot;level&quot; value=&quot;ALL&quot; /&gt;
    &lt;/bean&gt;
 ]]></script>
-</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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;url&quot; value=&quot;http://somewhere.com/foo/bar&quot;/&gt;
        &lt;property name=&quot;logger&quot; value=&quot;org.apache.cxf.jaxrs&quot; /&gt;
        &lt;property name=&quot;level&quot; value=&quot;INFO&quot; /&gt;
        &lt;property name=&quot;batchSize&quot; value=&quot;10&quot; /&gt;
    &lt;/bean&gt;
 ]]></script>
-</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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean class=&quot;org.apache.cxf.jaxrs.management.web.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean class=&quot;org.apache.cxf.jaxrs.management.web.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;url&quot; value=&quot;http://somewhere.com/foo/bar&quot;/&gt;
        &lt;property name=&quot;loggers&quot; value=&quot;
            org.apache.cxf:DEBUG,
@@ -413,13 +259,8 @@ org.apache.cxf.common.logging.Slf4jLogge
            myNamedLogger:INFO&quot; /&gt;
    &lt;/bean&gt;
 ]]></script>
-</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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;url&quot; value=&quot;http://somewhere.com/foo/bar&quot;/&gt;
        &lt;property name=&quot;logger&quot; value=&quot;org.apache.cxf.jaxrs&quot; /&gt;
        &lt;property name=&quot;level&quot; value=&quot;INFO&quot; /&gt;
@@ -428,13 +269,8 @@ org.apache.cxf.common.logging.Slf4jLogge
        &lt;property name=&quot;retryTimeout&quot; value=&quot;300&quot; /&gt;
    &lt;/bean&gt;
 ]]></script>
-</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 protocol than default:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean id=&quot;soapDeliverer&quot; ...
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean id=&quot;soapDeliverer&quot; ...
    ...
    &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;deliverer&quot;&gt;
@@ -443,13 +279,8 @@ org.apache.cxf.common.logging.Slf4jLogge
        &lt;property name=&quot;loggers&quot; ... /&gt;
    &lt;/bean&gt;
 ]]></script>
-</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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean id=&quot;atom1&quot; class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean id=&quot;atom1&quot; class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;url&quot; value=&quot;http://someplace.com/foo/bar&quot;/&gt;
        ...
    &lt;/bean&gt;
@@ -459,19 +290,8 @@ org.apache.cxf.common.logging.Slf4jLogge
    &lt;/bean&gt;
    ....
 ]]></script>
-</div></div>
-
-<h3 id="DebuggingandLogging-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 panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
- handlers = org.apache.cxf.management.web.logging.atom.AtomPushHandler, java.util.logging.ConsoleHandler
+</div></div><h3 id="DebuggingandLogging-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="codeC
 ontent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ 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
@@ -483,15 +303,8 @@ org.apache.cxf.common.logging.Slf4jLogge
  org.apache.cxf.jaxrs.ext.management.web.AtomPushHandler.retry.timeout = 360
  ...
 ]]></script>
-</div></div>
-
-<h3 id="DebuggingandLogging-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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-    Deliverer d = new WebClientDeliverer(&quot;http://somewhere.com/foo/bar&quot;);
+</div></div><h3 id="DebuggingandLogging-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">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[    Deliverer d = new WebClientDeliverer(&quot;http://somewhere.com/foo/bar&quot;);
     d = new RetryingDeliverer(d, 300, 60, true);
     Converter c = new SingleEntryContentConverter();
     AtomPushHandler h = new AtomPushHandler(1, c, d);    
@@ -499,11 +312,8 @@ org.apache.cxf.common.logging.Slf4jLogge
     l.setLevel(Level.INFO);
     l.addHandler(h);
 ]]></script>
-</div></div>
-<p>is equivalent to Spring configuration:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
+</div></div><p>is equivalent to Spring configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPushBean&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;url&quot; value=&quot;http://somewhere.com/foo/bar&quot;/&gt;
        &lt;property name=&quot;logger&quot; value=&quot;org.apache.cxf.jaxrs&quot; /&gt;
        &lt;property name=&quot;level&quot; value=&quot;INFO&quot; /&gt;
@@ -512,21 +322,8 @@ org.apache.cxf.common.logging.Slf4jLogge
        &lt;property name=&quot;retryTimeout&quot; value=&quot;300&quot; /&gt;
    &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<h2 id="DebuggingandLogging-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="DebuggingandLogging-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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPullServer&quot; init-method=&quot;init&quot;&gt;
+</div></div><h2 id="DebuggingandLogging-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="DebuggingandLogging-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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPullServer&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;loggers&quot; value=&quot;
            org.apache.cxf:DEBUG,
            org.apache.cxf.jaxrs,
@@ -535,15 +332,8 @@ org.apache.cxf.common.logging.Slf4jLogge
        &lt;property name=&quot;pageSize&quot; value=&quot;30&quot;/&gt;
    &lt;/bean&gt;
 ]]></script>
-</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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean id=&quot;storage&quot; class=&quot;org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPullSpringTest$Storage&quot;/&gt;
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean id=&quot;storage&quot; class=&quot;org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPullSpringTest$Storage&quot;/&gt;
 
    &lt;bean class=&quot;org.apache.cxf.management.web.logging.atom.AtomPullServer&quot; init-method=&quot;init&quot;&gt;
        &lt;property name=&quot;loggers&quot; value=&quot;org.apache.cxf.jaxrs&quot; /&gt;
@@ -553,16 +343,8 @@ org.apache.cxf.common.logging.Slf4jLogge
        &lt;/property&gt;
    &lt;/bean&gt;
 ]]></script>
-</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 has 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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;jaxrs:server id=&quot;atomServer&quot; address=&quot;/atom&quot;&gt;
+</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">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;jaxrs:server id=&quot;atomServer&quot; address=&quot;/atom&quot;&gt;
  &lt;jaxrs:serviceBeans&gt;
    &lt;ref bean=&quot;atomPullServer&quot;/&gt;
  &lt;/jaxrs:serviceBeans&gt;
@@ -576,15 +358,8 @@ org.apache.cxf.common.logging.Slf4jLogge
 &lt;bean id=&quot;feed&quot; class=&quot;org.apache.cxf.jaxrs.provider.AtomFeedProvider&quot;/&gt;
 &lt;bean id=&quot;entry&quot; class=&quot;org.apache.cxf.jaxrs.provider.AtomEntryProvider&quot;/&gt;
 ]]></script>
-</div></div>
-
-<h3 id="DebuggingandLogging-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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;atomPullServer&quot; class=&quot;org.apache.cxf.management.web.logging.atom.AtomPullServer&quot; init-method=&quot;init&quot;&gt;
+</div></div><h3 id="DebuggingandLogging-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">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;atomPullServer&quot; class=&quot;org.apache.cxf.management.web.logging.atom.AtomPullServer&quot; init-method=&quot;init&quot;&gt;
    &lt;property name=&quot;loggers&quot; value=&quot;org.apache.cxf.systest.jaxrs.JAXRSLoggingAtomPullSpringTest$Resource:ALL&quot;/&gt;
    &lt;property name=&quot;bus&quot;&gt;
       &lt;ref bean=&quot;cxf&quot;/&gt;

Modified: websites/production/cxf/content/docs/deployment.html
==============================================================================
--- websites/production/cxf/content/docs/deployment.html (original)
+++ websites/production/cxf/content/docs/deployment.html Tue Apr 22 12:47:36 2014
@@ -109,7 +109,7 @@ Apache CXF -- Deployment
            <div class="wiki-content">
 <div id="ConfluenceContent"><h1 id="Deployment-Deployment">Deployment</h1>
 
-<ul class="childpages-macro"><li><a shape="rect" href="application-server-specific-configuration-guide.html">Application Server Specific Configuration Guide</a></li><li><a shape="rect" href="embedding-cxf-inside-spring.html">Embedding CXF inside Spring</a></li><li><a shape="rect" href="using-cxf-jca-rar-in-application-server.html">Using CXF-JCA RAR in Application Server</a></li></ul></div>
+<ul class="childpages-macro"><li><a shape="rect" href="application-server-specific-configuration-guide.html">Application Server Specific Configuration Guide</a></li><li><a shape="rect" href="embedding-cxf-inside-spring.html">Embedding CXF inside Spring</a></li><li><a shape="rect" href="using-cxf-and-cdi-11-jsr-346.html">Using CXF and CDI 1.1 (JSR-346)</a></li><li><a shape="rect" href="using-cxf-jca-rar-in-application-server.html">Using CXF-JCA RAR in Application Server</a></li></ul></div>
            </div>
            <!-- Content -->
          </td>

Modified: websites/production/cxf/content/docs/features.html
==============================================================================
--- websites/production/cxf/content/docs/features.html (original)
+++ websites/production/cxf/content/docs/features.html Tue Apr 22 12:47:36 2014
@@ -117,13 +117,8 @@ Apache CXF -- Features
          <td height="100%">
            <!-- Content -->
            <div class="wiki-content">
-<div id="ConfluenceContent"><h1 id="Features-FeaturesinCXF">Features in CXF</h1>
-
-<p>A Feature in CXF is a way of adding capabilities to a Server, Client or Bus. For example, you could add the ability to log messages for each of these objects, by configuring them with a LoggingFeature. To implement a Feature, you must subclass AbstractFeature below. By default the initialize methods all delegate to initializeProvider(InterceptorProvider), so if you're simply adding interceptors to a Server, Client, or Bus, this allows you to add them easily.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-public abstract class AbstractFeature {
+<div id="ConfluenceContent"><h1 id="Features-FeaturesinCXF">Features in CXF</h1><p>A Feature in CXF is a way of adding capabilities to a Server, Client or Bus. For example, you could add the ability to log messages for each of these objects, by configuring them with a LoggingFeature. To implement a Feature, you must subclass AbstractFeature below. By default the initialize methods all delegate to initializeProvider(InterceptorProvider), so if you're simply adding interceptors to a Server, Client, or Bus, this allows you to add them easily.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[public abstract class AbstractFeature {
     public void initialize(Server server, Bus bus) {
         initializeProvider(server.getEndpoint(), bus);
     }
@@ -163,19 +158,8 @@ public abstract class AbstractFeature {
 }
 
 ]]></script>
-</div></div>
-
-<h1 id="Features-WritingandconfiguretheFeature">Writing and configure the Feature</h1>
-
-<p>CXF provides several features to configure commonly used capabilities, such as logging, failover, policies, addressing, reliable messaging. You can go to the <a shape="rect" href="featureslist.html">FeaturesList</a> for more information.</p>
-
-<h2 id="Features-WritingaFeature">Writing a Feature</h2>
-
-<p>It is very easy to write a new feature, your feature just need to extends the AbstractFeature and implement initializeProvider or write customizing code for configuring client or server interceptors. Here is an example for implementing the logging feature.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-public class LoggingFeature extends AbstractFeature {
+</div></div><h1 id="Features-WritingandconfiguringtheFeature">Writing and configuring the Feature</h1><p>CXF provides several features to configure commonly used capabilities, such as logging, failover, policies, addressing, and reliable messaging. You can go to the <a shape="rect" href="featureslist.html">FeaturesList</a> for more information.</p><h2 id="Features-WritingaFeature">Writing a Feature</h2><p>It is very easy to write a new feature; your feature just needs to extends the AbstractFeature and implement initializeProvider or write customizing code for configuring client or server interceptors. Here is an example for implementing the logging feature.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[public class LoggingFeature extends AbstractFeature {
     private static final int DEFAULT_LIMIT = 100 * 1024;
     private static final LoggingInInterceptor IN = new LoggingInInterceptor(DEFAULT_LIMIT);
     private static final LoggingOutInterceptor OUT = new LoggingOutInterceptor(DEFAULT_LIMIT);
@@ -216,15 +200,8 @@ public class LoggingFeature extends Abst
     }
 }
 ]]></script>
-</div></div>
-
-<h2 id="Features-AddingaFeatureprogrammatically">Adding a Feature programmatically</h2>
-
-<p>To add the feature to both server and client, you can use the Feature annotation on the service class</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-    @org.apache.cxf.feature.Features (features = &quot;org.apache.cxf.jaxws.service.AnnotationFeature&quot;)
+</div></div><h2 id="Features-AddingaFeatureprogrammatically">Adding a Feature programmatically</h2><p>To add the feature to both server and client, you can use the Feature annotation on the service class</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[    @org.apache.cxf.feature.Features (features = &quot;org.apache.cxf.jaxws.service.AnnotationFeature&quot;)
     public class HelloServiceImpl implements HelloService {
         public String sayHi() {
             return &quot;HI&quot;;
@@ -232,13 +209,8 @@ public class LoggingFeature extends Abst
     }
 
 ]]></script>
-</div></div>
-
-<p>You can also add the feature to the server by using ServerFactoryBean, or the client by using the ClientFactoryBean</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-import org.apache.cxf.frontend.ServerFactoryBean;
+</div></div><p>You can also add the feature to the server by using ServerFactoryBean, or the client by using the ClientFactoryBean</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import org.apache.cxf.frontend.ServerFactoryBean;
 import org.apache.cxf.frontend.ClientFactoryBean;
 ...
 ServerFactoryBean serverFactoryBean = new ServerFactoryBean();
@@ -252,14 +224,8 @@ clientFactoryBean.setFeatures(new ArrayL
 ...
 
 ]]></script>
-</div></div>
-
-<h2 id="Features-AddingaFeaturethroughconfiguration">Adding a Feature through configuration</h2>
-
-<p>Here are some examples on using configuration files to add features. You can find more information about the CXF provides features at <a shape="rect" href="featureslist.html">FeaturesList</a>.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
+</div></div><h2 id="Features-AddingaFeaturethroughconfiguration">Adding a Feature through configuration</h2><p>Here are some examples on using configuration files to add features. You can find more information about the CXF provides features at <a shape="rect" href="featureslist.html">FeaturesList</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
       xmlns:cxf=&quot;http://cxf.apache.org/core&quot;
       xmlns:jaxws=&quot;http://cxf.apache.org/jaxws&quot;



Mime
View raw message