Hi folks,

I've been trying to get a client handler chain working but the handler is never called:

nameSpace comes from <wsdl:definitions targetNamespace="http:// test.ac.uk/services/RemoteEngineService">

The registry.getHandlerChain uses "EngineService" from:
<wsdl:service name="EngineService">
<wsdl:port binding="impl:EngineServiceSoapBinding" name="EngineService"> <wsdlsoap:address location="http://test.ac.uk/services/ RemoteEngineService"/>
  </wsdl:port>
</wsdl:service>

Service service = ServiceFactory.newInstance().createService(new QName (nameSpace, "Dummy"));
HandlerRegistry registry = service.getHandlerRegistry();
List handlers = registry.getHandlerChain(new QName("nameSpace", "EngineService"));
HandlerInfo newHandler = new HandlerInfo();
newHandler.setHandlerClass(MyHandler.class);
handlers.add(newHandler);

Call call = service.createCall();
call.setTargetEndpointAddress("http://test.ac.uk/services/ RemoteEngineService");
call.setOperationName(new QName(nameSpace, "doSomething"));
call.addParameter("id", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
String res = (String)call.invoke(new Object[] {"SOME_DATA"});

MyHandler extends GenericHandler. The Axis handlers for the remote service are working fine. It's the client handlers that I can't seem to invoke.

is there something I'm missing?

thanks,
Alistair


Reply via email to