I know this was asked before but there was not a concludent (conclusive)
answer to this question. Anyway I found only one relevant post to this:
http://www.mail-archive.com/[email protected]/msg02896.html
and personally I ran into the same problem as described in the post, no
SOAP content. More precise I created my own Handler etc as described on
the XFire website but the console output contains only
org.codehaus.xfire.handler.HandlerPipeline invocations but no SOAP
messages. I was trying to use the DOMInHandler and DOMOutHandler in
order to fetch the SOAP messages using XFire logging with no success.
FYI I was following and I read: 
http://xfire.codehaus.org/MessageContext - getting at the xml 
http://xfire.codehaus.org/FAQ - add custom handler


This is a simple custom handler that I used:
------------------------------------------------------
public class CustomHandler extends AbstractHandler 
{ 
    //enable XFire logging 
    private Log log = LogFactory.getLog(MDMHandler.class); 
        
    public void invoke(MessageContext context) 
    {        
        log.info("invoke in MSMHandler was called"); 
        
        // get inbound and outbound messages 
        Document inputDoc = (Document) context.getInMessage
().getProperty(org.codehaus.xfire.util.dom.DOMInHandler.DOM_MESSAGE); 
        Document outputDoc = (Document) context.getOutMessage
().getProperty(org.codehaus.xfire.util.dom.DOMOutHandler.DOM_MESSAGE);
  
            
        System.out.println(inputDoc.toString()); 
        System.out.println(outputDoc.getXmlVersion()); 
        System.out.println(outputDoc.getLocalName()); 
        System.out.println(outputDoc.toString());              
        
        log.info(inputDoc);            
        log.info(outputDoc); 
        
//        log.trace(inputDoc);            
//        log.trace(outputDoc); 
    } 
    
}
------------------------------------------------------
and at the end of the client constructor I added this:
------------------------------------------------------
        //      Tell XFire to cache a DOM document for the various
in/out/fault flows 
        service1.addInHandler(new
org.codehaus.xfire.util.dom.DOMInHandler()); 
        service1.addOutHandler(new
org.codehaus.xfire.util.dom.DOMOutHandler()); 
        service1.addFaultHandler(new
org.codehaus.xfire.util.dom.DOMOutHandler()); 

        //      Add a logging handler to each flow 
        service1.addInHandler(new org.codehaus.xfire.util.LoggingHandler
()); 
        service1.addOutHandler(new
org.codehaus.xfire.util.LoggingHandler()); 
        service1.addFaultHandler(new
org.codehaus.xfire.util.LoggingHandler());
------------------------------------------------------
I don't think the CustomHandler's invoke method is called, or that it
intercepts the right MessageContext. How you get the proper context of a
web service developed with XFire? Because the rest of it (getting the
Document is clear). There is an XFire example available on the
internet ?


This is really important in order to test/ debug web services developed
in XFire.


Please let me know the right procedure in order to perform SOAP
tracing / monitoring using XFire. And last question: XFire logging will
work only for HTTP (exactly like TCOMON for example) or is it possible
to work as well for HTTPS endpoints ?

Thanks in advance,
Dragos


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to