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

Reply via email to