On 11/8/11 6:51 PM, Raúl Kripalani wrote:
Hi,

Sounds very convenient.

Special care must be taken when dataFormat=MESSAGE
(http://camel.apache.org/cxf.html#CXF-HowtoenableCXF%2527sLoggingOutInterce
ptorinMESSAGEmode).

Shall we also allow the user to specify the limit, as per the
Logging*Interceptor(int) constructors? Otherwise, it defaults to 100 bytes.

I think we can add an option of loggingLimit to let the user override the default value.

We can extend the CXF LoggingFeature to let it handle the MESSAGE data formate states.


Regards,
Raúl.


On 08/11/2011 10:43, "Willem Jiang"<willem.ji...@gmail.com>  wrote:

Hi Claus,

CXF has the log feature can avoid us to configure lots of interceptors.
but it could be more handy if we add an attribute on the cxfEndpoint.

+1 for this idea.


On Tue Nov  8 18:36:27 2011, 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






--
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