PS -

I believe I could do it by casting my java.xml.rpc.Service to an 
org.apache.axis.client.Service and then call setTypeMappingRegistry(..) on 
it - is that the preferred method?

I'm going to go give it a shot.


-c

On Fri, Oct 17, 2003 at 04:32:59PM -0400, Christopher Blunck wrote:
> 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

-- 
 16:35:00  up 2 days,  5:40,  8 users,  load average: 0.09, 0.13, 0.08

Reply via email to