I just checked the CxfEndpoint code and find there is loggingFeatureEnabled option, we just need to make it available in <cxfEndpoint> attribute.

BTW, I'm planing to add the loggingLimit option at the same time.
On 11/8/11 6:36 PM, Claus Ibsen wrote:
Hi

When working with camel-cxf, you can get pretty fast setup with the
Camel cxfEndpoint element as shown:

For example to call the famous weather web service

   <cxf:cxfEndpoint id="weatherWebService"
                    address="http://www.webservicex.net/globalweather.asmx";
                    endpointName="s:GlobalWeatherSoap"
                    serviceName="s:GlobalWeather"
                    wsdlURL="http://www.webservicex.net/globalweather.asmx?WSDL";
                    xmlns:s="http://www.webserviceX.NET";>


However to enabling logging of INBOUND and OUTBOUND messages with CXF,
you need to thinker with interceptors.
And IMHO that is a bit PITA as its kinda hard to remember all the
mighty XML stuff you need to add, just to see what is send out and
comes back in the console / logs.

Currently you would have to added these 4 interceptors, and remember
also what the class names of the interceptor bean is

   <cxf:cxfEndpoint id="weatherWebService"
                    address="http://www.webservicex.net/globalweather.asmx";
                    endpointName="s:GlobalWeatherSoap"
                    serviceName="s:GlobalWeather"
                    wsdlURL="http://www.webservicex.net/globalweather.asmx?WSDL";
                    xmlns:s="http://www.webserviceX.NET";>

         <cxf:inInterceptors>
             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
         </cxf:inInterceptors>
         <cxf:inFaultInterceptors>
             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
         </cxf:inFaultInterceptors>
         <cxf:outInterceptors>
             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
         </cxf:outInterceptors>
         <cxf:outFaultInterceptors>
             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
         </cxf:outFaultInterceptors>

   </cxf:cxfEndpoint>


Thats is a lot of XML just to play with a web service.

It would be much easier if there was a attribute that could setup
these logging interceptors for you out of the box. So all you have to
do was set logging attribute to true.

   <cxf:cxfEndpoint id="weatherWebService"
                    logging="true"
                    address="http://www.webservicex.net/globalweather.asmx";
                    endpointName="s:GlobalWeatherSoap"
                    serviceName="s:GlobalWeather"
                    wsdlURL="http://www.webservicex.net/globalweather.asmx?WSDL";
                    xmlns:s="http://www.webserviceX.NET";>


Any thoughts?





--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang
Weibo: willemjiang

Reply via email to