axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jansen Werner" <Werner.Jan...@eon-is.com>
Subject RE: Adding own handler in Java Code?
Date Tue, 04 Jul 2006 08:04:57 GMT
Good morning Dies,

thanks for your help! I tried what you wrote and couldn't get it
working.

This is my code (service is an instance of
org.apache.axis.client.Service, Loghandler is
org.apache.axis.handlers.LogHandler, the rest is like you wrote it):

private static void registerHandlers(Service service)
    {
        HandlerRegistry hr = service.getHandlerRegistry();

        List<HandlerInfo> hl = new ArrayList<HandlerInfo>();
        hl.add(new HandlerInfo(LogHandler.class, null, null));
        hr.setHandlerChain(new QName(
                "http://www.eon-is.com/namespaces/soap/1.0", "log"),
hl);
    } 

service is initialized using its default constructor before calling
registerHandlers (Service service = new Service();). After calling
registerHandlers and registerTypeMappings (adding Classes, Serializers
and so on), this instance is used to create a call (call = (Call)
service.createCall();) that is filled with parameters, values, endpoint,
... and then executed.

When I run my SOAP call that calls registerHandlers before executing,
nothing happens. At least nothing different from when the Handler was
not included. What did I do wrong? If there's any information needed for
further help, let me know. I'm stuck, I feel like finding lost contact
lenses in a dark alley if you had quite a few beers. Not that I know how
this feels like, but it must be similar to this :)

Greetings from Munich,

Werner





> -----Original Message-----
> From: Dies Koper [mailto:dies@jp.fujitsu.com] 
> Sent: Tuesday, July 04, 2006 1:55 AM
> To: axis-user@ws.apache.org
> Subject: Re: Adding own handler in Java Code?
> 
> Hello Werner,
> 
> Refer to the JAX-RPC1.1 spec to see how to use a client handler in a 
> portable way. I believe it goes something like this:
> 
>    sf = javax.xml.rpc.ServiceFactory.newInstance();
>    SEIService si = (SEIService)sf.loadService(SEIService.class);
> 
>    // register client handler
>    javax.xml.rpc.handler.HandlerRegistry hr = si.getHandlerRegistry();
>    java.util.List hl = new java.util.ArrayList();
>    hl.add(new 
> javax.xml.rpc.handler.HandlerInfo(YourHandler.class,null,null));
>    hr.setHandlerChain(new 
> QName("http://localhost/xxx/","yourPort"),hl);
> 
>    SEI sei = si.getSEIPort();
> 
> YourHandler should implement javax.xml.rpc.handler.Handler.
> I don't know whether the LogHandler you are referring to is a JAX-RPC 
> compliant one..
> 
> Hope that helps,
> Dies
> 
> 
> Jansen Werner wrote:
> >> If you mean "selecting a subset among an already well-known set of 
> >> available handlers", the answer is that it is easier :-)
> >>
> >> You will have to create a handler that could act as a 
> >> "handler chain", 
> >> and put into it the logic to take the decision about what 
> handlers to 
> >> actually call when invoked. Depending on what you need, 
> this handler 
> >> will have the information needed to find out the handlers to 
> >> call (for 
> >> example, by parsing a policy), or you may have to include the 
> >> mechanisms 
> >> to communicate with it from the service implementations or 
> >> other points, 
> >> and configure it at runtime.
> > 
> > OK, this sounds like my problem.
> > 
> > For an example, let's take the LogHandler packaged with 
> axis. How can I
> > add this (simple, easy) Handler to Axis at runtime? (And 
> remove it later
> > ...).
> > 
> > I have found a way to access the HandlerRegistry
> > (Service.getHandlerRegistry()). But - without deeper 
> knowledge of the
> > HandlerChains available - how do I add my Handler (or the LogHandler
> > mentioned above)?
> > 
> >> Just keep in mind that you need to respect the handlers 
> >> interface, and 
> >> call their methods in the appropriate order. That is, to 
> >> initialise them 
> >> before invoking them, and the like.
> > 
> > This is something I will concentrate on when I managed to add the
> > LogHandler provided by Axis :)
> > 
> > Ah, before I forget it again, our Axis version is 1.3 :)
> > 
> > Thanks in advance :)
> > 
> > CU
> > Werner
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message