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