I've been looking high and low for documentation on how to instruct a JAXRPC client (backed by Axis) where to look for your complex types. So here's a challenge - prove me an idiot by calling out where these docs exist, or similarly mock my intelligence by provided a code snippet to explain how this works.
Here's the setup. I have a service that is passed a complex type, and returns a complex type. It's interface (as generated by Axis) looks like this (OrderPortType.java): public submit.Response submit(submit.Request request) throws RemoteException; I used Axis to generate a server skeleton, which I then subclass and deploy with axis under Tomcat. Everything looks good thus far. I then code up my client. I'd really like to code it using a ServiceFactory: URL url = new URL(urlString); ServiceFactory factory = ServiceFactory.newInstance(); Service service = factory.createService(url, new QName(ns, serviceName)); List list = service.getHandlerRegistry().getHandlerChain(new QName(ns, portName)); list.add(new HandlerInfo(ClientHandler.class, null, null)); OrderPortType myProxy = (OrderPortType) service.getPort(new QName(ns, portName), OrderPortType.class); Object response = myProxy.submit(null); I compile the client and run it. I receive the classic "unable to find deserializer for type {....}/...". I gave it some thought, and I don't see how I can provide this information. The OrderPortType.class parameter I pass to service.getPort() is just an interface - it doesn't contain any complex type information. Since that's the only class I ever pass to the JAX-RPC framework, I don't see how I can possibly tell JAX-RPC how to correctly deserialize the response soap message. What am I missing? My deploy.wsdd contains typeMapping information, and I've sniffed the network to confirm that the response soap message looks kosher. Is there a method I can call to register my type mappings? Or .... ? This seems so simple, yet is so out of reach. BTW, example5 of the userguide only shows how to serialize a complex type. I'll get to that later - I want to know how to deserialize first. Any hints? -c -- 16:25:00 up 2 days, 5:30, 8 users, load average: 0.16, 0.12, 0.04