Niels,

You're right -- the Apache SOAP page should provide a warning that tells you to use Axis 1 instead. Axis 2 isnt feature-complete yet, so I don't think it's appropriate to put the same warning on the Axis 1 page. Axis 1 is Apache's current production release SOAP engine. Given that you've already started working with Axis 1, I suggest you stick with it rather than re-writing your app for Axis 2.

When trying to enable interoperability with .NET, it's always a good idea to adopt the "WSDL First" approach. You can use java2wsdl to generate a first pass at a WSDL file, but then you should tweak the WSDL to ensure that it supports the structures you want. And yes, you want to request the "wrapped" style, and you want to name each of your arguments.

After you have refined your WSDL file, then you want to use wsdl2java to regenerate your service skeleton and WSDD file.

Perhaps if you posted your WSDL and WSDD files we could provide you with a little more assistance.

Anne



On 3/13/06, Niels Baloe <[EMAIL PROTECTED]> wrote:
Hi all,

I have a problem.

Last week I needed to implement a webservice, I saw Apache SOAP, heared some
good things about it, so I used it to implement my webservice, and it worked
quite fine in no-time. Then I needed to do things with a WSDL and I found
out about Apache Axis. Hmmm, well, so I shifted to Axis. No big problems,
one day later Axis was running the thing, and I could generate a WSDL (and
back) too. Note: why the heck doesn't the Apache SOAP frontpage say: "DON't
USE THIS, USE AXIS INSTEAD!" I recommend it.....

Anyway, now I have to communicate with a .NET service. So I've set the
communication to 'wrapped', and thanks to some text-based java-code I
already had (because the Axis exception doesn't say anything else then
'null'!!-- it should just wrap the HTTP response which contains the textual
error from the server!!!!), I found out that .NET needs a specific name as
the first argument of the function instead of the automatic 'arg0' (grrr),
and that it needed capitals in some header stuff. So today I wrote a custom
serialiser too to provide the capitals in the header. Pfffff. And it works
quite fine in the text-only tester (sending exactly what Axis generates),
but not in Axis. Why? The only difference in the two messages (text and
Axis) is HTTP/1.1 versus HTTP/1.0. And I suspect it is a shared IP. Anyway,
I didn't succeed in changing the header to 1.1 inside Axis...

So, today I found out about Axis2. Yes, a bit stupid yes, but then again,
why doesn't the Axis1 frontpage say anything about it (the first line would
be a nice place;) ). But, Axis2 has a different way of deploying, and
currently I first want to get an example running. But, there are no examples
that use the word 'call' or that throw around an object. [ Note: I can't use
Axis1 and Axis2 together as well, because of a namespace-clash with the
logging, so I have to switch to Axis2 in the end. ] Anyway, does anyone have
an example? Yes I know about the user guide examples, but these do not
demonstrate something with sending and receiving objects. We are not in the
stone ages, I'm not going to parse a tree myself, I need objects. I just
need an example like the 'address' example in ApacheSOAP/Axis1.4, which has
a class Address {..} which is thrown around....


PS. Another thing: why doesn't the Java2WSDL contain a main() anymore? It's
quite convenient.

Thank you very much for any advice. Either an example, or notifying of how
to set Axis1.4 to HTTP/1.1 would be really very great!

All the best,

Niels Gorisse

_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.com/


Reply via email to