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:[EMAIL PROTECTED] > 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: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]