Hi,

Currently, my log files are full of warnings from org.apache.cxf.phase.
PhaseInterceptorChain.doDefaultLogging whenever my JAX-WS services return
with a SOAP Fault (even though its an application level fault defined in
the WSDL). This means I get stack traces and dirty logs whenever a SOAP
service is called and maybe response with a fault such as "Account does not
exist" etc.

To get rid of this I am trying to register my own FaultListener (
https://cxf.apache.org/javadoc/latest/org/apache/cxf/
logging/FaultListener.html)

I followed this : http://tomee.apache.org/developer/configuration/cxf.html by
adding a line like this to system.properties:

org.apache.openejb.cxf.bus.org.apache.cxf.logging.
FaultListener=com.smilecoms.commons.base.FaultListener

Unfortunately, my listener is not being used. It has been packaged in a jar
and placed in tomee/lib


Here is the basic listener that should suppress CXF from doing any fault
logging itself. I never see the constructor for my FaultListener being
called in my logs and CXF continues to log the stack traces for my faults.


package com.smilecoms.commons.base;

import org.apache.cxf.message.Message;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class FaultListener implements org.apache.cxf.logging.FaultListener {

    private static final Logger log = LoggerFactory.getLogger(
FaultListener.class);

    public FaultListener() {
        log.error("Constructor called");
    }

    @Override
    public boolean faultOccurred(Exception e, String string, Message msg) {
        log.warn("FaultListener for exception: [{}] [{}] [{}]", new
Object[]{e.toString(), string, msg});
        return false;
    }
}


What am I doing wrong? What is the correct way to configure the
FaultListener property in TomEE.

P.S. Running TomEE 7.0.3 Plume


Thanks
Paul

-- 


This email is subject to the disclaimer of Smile Communications at 
http://www.smilecoms.com/home/email-disclaimer/ 
<http://www.smilecoms.com/disclaimer>

Reply via email to