Yup, a project that I am working on is having a bad time with Web services. The core problem is that interop is just not there.
Because of this, if I am a Web services consumer, I am going to:
Always give out a simple API set of stubs in various languages
As a user of a current Web services provider, I just want to have some bloody stubs which wrap their services and make sure all works well. The current stubs are Axis 1.1-ish, and are not working right.
Why not? due to multiRef. .NET Server doesn’t like multiRef too much (for simple types). When you make a call the .NET Server says something like this right?:
Error: Cannot understand multiref at line 3, element foo
Er no. We get back:
SOAP Error
NO INFORMATION. Fun to debug for sure. “Hmm, let me try this… or this… or this..”
So, I have to learn from this experience and if I am ever a consumer:
- Give decent error messages back to my users
- Have good documentation on the common problems
- Have a lot of sample code showing the services working
- Have an API that users can download which has been TESTED
Shoot, I would much rather be talking to some damn EJBs! :)
Grr…
proxySoap._getProperty(Call.OPERATION_STYLE_PROPERTY): ERROR
March 26th, 2005 at 1:35 am
Perhaps you can consider a web service wrapper around an EJB?
March 26th, 2005 at 12:14 pm
Maybe the decision has already been made, but it looks like you are using rpc/encoded services. The basic profile basically says don’t use rpc/encoded if you want any chance of interop. Really thats where 99% of the interop problems come from. Avoid it and you’ll save yourself a lot of trouble.
And why won’t your MT installation let me post? Its saying that I have “questionable content?”…
March 26th, 2005 at 3:16 pm
We are using webservices too and I’ve found that limiting the api to basic types is the best approach. We typically just pass everything as strings xml in xml out. and parse it ourself. As soon as you start messing around with complex types you’re going to have problems.
March 28th, 2005 at 6:01 am
Hi Dion,
If you are having issues with the .Net side, the easy solution may be to post this article to Scoble’s blog. He will surely get you a solution :-)
Or better still Don Box !!!
Granted that is not a technical solution but still a solution worth trying, IMHO.
HTH,
Ravi…
March 28th, 2005 at 12:25 pm
I’ve had similar problems. When I tried to get SOAP attachments working with a .NET client and Axis web service.
Would you use something else if you could decide? At least I would try to use something like Hessian or REST. I’m not a fan of SOAP or Axis. I have not seen a good SOAP web service anywhere. The eBay SOAP API is a good example. They’ve built an SDK on top of it so that it would be easier to use. But it’s still very difficult to use.