Benson,

Thanks for the tips. I have enabled AegisServiceConfiguration on the server side, yes, and I admit I was wondered if this was causing the problem. I had found these docs before and I'd used them to set up things on the server side (although it's possible I'm doing this wrong), and I've tried tweaking things based on the new stuff in the Aegis docs. I still haven't managed to solve the problem, though.

The thing that was puzzling me is that the SOAP messages being sent/received seem to be correct. I assume this means that my service is configured correctly, and that I haven't set the client up to correctly interpret the response - but I've tried directing my client to use the Aegis databinding in a variety of ways and still seem to be getting this null problem. If I'm doing it incorrectly, does anyone have any code examples of how to do this?

I can provide more details about my service/client configuration if that will help.

Thanks again,

Tony.



Benson Margulies wrote:
Tony,

Please check out the current (newly modified) Aegis doc. Perhaps you have
the 'AegisServiceConfiguration' enabled on the server side?



On Tue, Feb 26, 2008 at 6:08 AM, Tony Burdett <[EMAIL PROTECTED]> wrote:

Hi,

I'm having a problem trying to build a client for my service with cxf.
My service is up and running, but whenever I try and access it from a
client I'm getting null pointer exceptions.  The code to setup my client
looks like this:

   // SNIP
   JaxWsProxyFactoryBean proxyFactory = new JaxWsProxyFactoryBean();

   proxyFactory.getInInterceptors().add(new LoggingInInterceptor());
   proxyFactory.getOutInterceptors().add(new LoggingOutInterceptor());

   proxyFactory.setServiceClass(FluxionService.class);
   proxyFactory.setAddress(serviceURL);
   proxyFactory.setDataBinding(new AegisDatabinding());

   FluxionService fs = (FluxionService)proxyFactory.create();
   // SNIP

Now, I should be able to do:

   Set<URI> uris = fs.getDataSources();

to retrieve a set of URIs from this service.  When I make this call, I
get the following SOAP request and response:

Request:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
   <soap:Body>
     <ns1:getDataSources
xmlns:ns1="http://service.fluxion.comparagrid.org/"; />
   </soap:Body>
 </soap:Envelope>

Response:

 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
   <soap:Body>
     <ns1:getDataSourcesResponse
xmlns:ns1="http://service.fluxion.comparagrid.org/";>
       <return>
         <ns2:anyURI
xmlns:ns2="http://impl.service.fluxion.comparagrid.org/";>
           http://metagenome.ncl.ac.uk/cgdemo.owl
         </ns2:anyURI>
       </return>
     </ns1:getDataSourcesResponse>
   </soap:Body>
 </soap:Envelope>

That's exactly what I'd expect.  However, the actual Set<URI> returned
in my app is null, so I'm seeing NPEs whenever I try and iterate over
this set.  What's going on here? I'm relatively new to CXF as I've just
ported over from XFire so I'm prepared to admit that I might be missing
something fundamental but this looks pretty weird to me.

Any advice would be highly appreciated as this is driving me mad!

Thanks,

Tony

--
Tony Burdett
Software Developer,
ComparaGrid.

European Bioinformatics Institute
email: [EMAIL PROTECTED]
tel:   01223 494624





Reply via email to