You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by J....@pilz.ie on 2005/03/01 12:06:00 UTC

RE: Adding a custom handler

Thanks - 

That worked perfectly. 

I had made the mistake of extending the wrong handler (BasicHandler) which 
doesn't seem to appear in the handler chain.

Thanks for the solution.

James




Alick Buckley <Al...@lansa.com.au> 
28/02/2005 21:14
Please respond to
axis-user@ws.apache.org


To
axis-user@ws.apache.org
cc

Subject
RE: Adding a custom handler







I have the following working 
========================================================================= 
  QName portName = stub.getPortName () ; 
  Service service = stub._getService () ; // Axis 1.2 RC2 
  HandlerRegistry handlerRegistry = service.getHandlerRegistry () ; 
  List handlerChain = handlerRegistry.getHandlerChain ( portName ) ; 
  MyHandlerInfo handlerInfo = new MyHandlerInfo () ; 
  handlerInfo.setHandlerClass ( MyHandler.class ) ; 
  handlerChain.add ( handlerInfo ) ; 
  handlerRegistry.setHandlerChain ( portName, handlerChain ) ; 
========================================================================= 
  public class MyHandler implements Handler 
  { 
    public void init ( HandlerInfo handlerInfo ) throws JAXRPCException 
    { 
        if ( handlerInfo instanceof MyHandlerInfo ) 
        { 
        } 
    } 
    public void destroy () throws JAXRPCException 
    { 
    } 
    public QName[] getHeaders () 
    { 
        return new QName[0] ; 
    } 
    public boolean handleFault ( MessageContext messageContext ) throws 
JAXRPCException 
    { 
        return true ; // return true to continue processing 
    } 
    public boolean handleRequest ( MessageContext messageContext ) throws 
JAXRPCException 
    { 
        SOAPMessage message = 
((SOAPMessageContext)messageContext).getMessage () ; 
        return true ; // return true to continue processing 
    } 
    public boolean handleResponse ( MessageContext messageContext ) throws 
JAXRPCException 
    { 
        return true ; // return true to continue processing 
    } 
========================================================================= 

-----Original Message----- 
From: J.Sugrue@pilz.ie [mailto:J.Sugrue@pilz.ie] 
Sent: Tuesday, 1 March 2005 3:26 AM 
To: axis-user@ws.apache.org 
Subject: Adding a custom handler 

Hi. 
I'm writing a client side Axis application, in which I need to create my 
own custom handler. 
I'm using WSDL2Java to generate my code stubs, and I was hoping that I 
could add a handler as follows: 
                                HandlerRegistry registry  = 
service.getHandlerRegistry(); 
                                QName portName = s.getPortName(); 
                                List handlerChain = 
registry.getHandlerChain(portName); 
                                HandlerInfo handlerInfo = new 
HandlerInfo(); 
 handlerInfo.setHandlerClass(com.foo.MyHandler); 
                                handlerChain.add(handlerInfo); 
                                registry.setHandlerChain(portName, 
handlerChain); 

But when I run the client application, it would seem this handler is not 
called as both the handleRequest and handleResponse methods produce no 
output (I've added in System.out's to them to see if it works) 
Does anyone have any ideas of what I may be missing? 
Thanks. 
James 

This email is intended solely for the use of the named addressee(s). Any 
unauthorised disclosure, copying or distribution of the confidential 
information contained therein, or the taking of any action based on it, is 

prohibited. The sender disclaims any liability for the integrity of this 
email. Legally binding declarations must be in written form. 

This email is intended solely for the use of the named addressee(s). Any 
unauthorised disclosure, copying or distribution of the confidential 
information contained therein, or the taking of any action based on it, is 
prohibited. The sender disclaims any liability for the integrity of this 
email. Legally binding declarations must be in written form.