Hi all,
Thanks for your reply's.
Take a look at the migration guide:
http://ws.apache.org/axis2/0_93/migration.html
Yes I've seen it, I took some time to implement that example, but it isn't
complete. It uses the echo example, look at the the word 'ClientUtil' in "
ClientUtil.getEchoOMElement(); " while at the same time the Axis1 example
above clearly shows that you can work with the 'String' type right out of
the box (and it's terribly simple to register other types as well!!). On the
other hand, Axis2 introduces an 'OMElement' but nothing clearly shows (at
least for me) how to work with it. I've seen some registering stuff in the
echo example though, but it didn't work out. Really, a simple example which
completely works (like with a class Address { String name,String telephone}
) is needed. Simple examples makes an API good.
Another thing, I don't like a lot of code being added to my data classes.
I've seen what axis2 does to my classes. Is that really needed? In Axis1 I
don't have any generated garbage in my classes (except get and set functions
which are harmless); in fact there's only one _method_ (not even a class)
which calls the service, complete with registering and everything. It looks
like in Axis2 all classes will be filled with generated stuff, before I can
be a client application. Or am I wrong?
http://issues.apache.org/jira/browse/AXIS2-485?page=all
I'll look to it in a moment, thanks! Perhaps I can help?
BTW, the address example in the axis 1.x uses WSDL style 'rpc encoded' .
For
the time being you need to use document / literal with axis2 .
I switched to wrapped/literal right away because I'm talking with .NET
clients too. But I'm not using that example at all, I wrote my own;). I only
looked at it as it is a clear way of how to write my client-method. That was
about two weeks ago.
You're right -- the Apache SOAP page should provide a warning that tells
you to use Axis 1 instead.
Thanks. Is there a place where I should mail it to?
Of course, Axis2 doesn't look complete yet, in the future the main Axis1
page should say that it is depreciated.
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.
Well, in fact, I simply did that, I generated the WSDL, it looked fine, then
I gave it to the .NET service, and they implemented it accordingly. No
wonder: everything works fine (this computer being a server and running the
client code to access this computer). But really, the WSDL or the message is
not the issue at all. I manually wrote a serialiser to get capitals inside
some headers, untill the generated message worked fine (peeking with the
TCPTunneler), while manually sending the message itsself with some a
pure-java code. If I send the captured message with a normal Java socket, it
works perfectly, but if Axis1 does the trick, it simply doesn't work. And
the only difference in the two messages is the \1.0 -- \1.1 number. See for
yourself below! So, how do I force the HTTP\1.1 usage?
Thank you very much!,
Niels
-
Sending with a pure-java client:
""
POST /axis/services/rpcrouter HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.voorst.nl/VoorstVariant/getGemeenteInfo"
User-Agent: Java/1.5.0_06
Host: localhost:90
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-Length: 1198
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:UserCredentials xsi:type="ns1:UserCredentials"
xmlns:ns1="http://www.voorst.nl/VoorstVariant/">
<ns1:AutorizationKey xsi:nil="true"/>
<ns1:Password xsi:type="xsd:string">***</ns1:Password>
<ns1:UserId xsi:type="xsd:string">***</ns1:UserId>
</ns1:UserCredentials>
</soapenv:Header>
<soapenv:Body>
<getGemeenteInfo xmlns="http://www.voorst.nl/VoorstVariant/">
<p xsi:type="ns2:Polygoon"
xmlns:ns2="http://www.voorst.nl/VoorstVariant/">
<ns2:gmlPolygoon
xsi:type="xsd:string"><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>203000,471000
203600,472000 203700,472000 203700,471900
203600,471900</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ns2:gmlPolygoon>
</p>
</getGemeenteInfo>
</soapenv:Body>
</soapenv:Envelope>
"
Sending with Axis1:
""
POST /axis/services/rpcrouter HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.4
Host: localhost:90
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "http://www.voorst.nl/VoorstVariant/getGemeenteInfo"
Content-Length: 1057
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:UserCredentials xsi:type="ns1:UserCredentials"
xmlns:ns1="http://www.voorst.nl/VoorstVariant/">
<ns1:AutorizationKey xsi:nil="true"/>
<ns1:Password xsi:type="xsd:string">***</ns1:Password>
<ns1:UserId xsi:type="xsd:string">***</ns1:UserId>
</ns1:UserCredentials>
</soapenv:Header>
<soapenv:Body>
<getGemeenteInfo xmlns="http://www.voorst.nl/VoorstVariant/">
<p xsi:type="ns2:Polygoon"
xmlns:ns2="http://www.voorst.nl/VoorstVariant/">
<ns2:gmlPolygoon
xsi:type="xsd:string"><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>203000,471000
203600,472000 203700,472000 203700,471900
203600,471900</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></ns2:gmlPolygoon>
</p>
</getGemeenteInfo>
</soapenv:Body>
</soapenv:Envelope>
""
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/