"Friends don't let friends use Axis2"

I have had a run in or two with the "bunch of Sri Lankan shirtlifters" that created Axis2. The entire premise of the thing they have been pushing in various articles just irks me, start from schema, generate code. Maybe it is just me, because honestly there are many other purveyors of this sentiment as well, but I do not want to write an XML file and generate code from that. Rather, I want to start from code, and have it generate a schema and WSDL (much more the direction of JAX-WS, granted though, both can go either direction, but the focus is wrong in Axis2 land). In the days when Java could not specify things like "minOccurs" or "unique", or other concepts that could be expressed in schema, the notion of "start from schema" was semi-valid - but those days were years ago at this point. Currently, you can define an interface, in Java, with annotations, and specify just about anything (well, anything I have come across needing to specify, there may still be gaps, but this is never the reasonining I hear from the "schema first" crowd, usually it is more of " well webshpere . . . " at which point I stop listening).

In addition to just not being on board with the premise of Axis2, I have also seen many Axis2 posts that sure smelled like astroturfing, in terms of why it is so great and what its benchmark numbers are.

Turns out, there may be something to that smell: http://jroller.com/page/fate?entry=dodgy_benchmarks.

Now, it is despicable when companies spit out their own favorable benchmarks, true, but is it unexpected? This seems to happen all over the place. Also, in minor defense of Axis2 under the scope of the Jordanian Pilot's piercing insight, Hani is a committer at Xfire (he has every right to criticize the Axis2 manipulation, but everyone should keep in mind that he has his own bias as well - whether or not he is capable of managing it better). The best part of all of it though, regardless, is that Hani posts are funny again.

Oh, and I do prefer Xfire over Axis, any version of Axis. Props are in order to the Xfire team, including the turd burgling bile blogger. (And to those that said "use Java 6" in the comments on the bile blog, if what you meant was use JAX-WS, the Sun ref impl, then be advised that Xfire has an early access impl of JAX-WS too - http://xfire.codehaus.org/JAX-WS.)

Comments

Have you actually tried Axis2?

I'm guessing you haven't actually tried Axis2. One of the most basic samples is how to deploy a POJO as a Web Service.

Paul

PS and yes, of course the benchmarks we run may not be completely perfect, but we are publishing the source code, and we are actually running them. Hani's post assumes that XFire/JIBX is going to thoroughly beat Axis2/ADB, but in the data that just isn't the case. And yeah, I have tried XFire.

@Have you actually tried

@Have you actually tried Axis2?

Yes - though I must admit only briefly in "test drive" mode.

And as I said in the article, I am well aware that Axis2 can go that direction (and JAX-WS can start from schema), my concern (as I also stated in the article), was the general focus in Axis2 land, that if you do not start from schema you are somehow doing it incorrectly. That is nonsense.

Where do I get such crazy ideas: http://today.java.net/pub/a/today/2006/08/08/contract-first-web-services....

Axis2 and WSDL

I've tryed several ways of doing WebServices with Axis2 (POJO, Contract First and ADB and even JAX-WS).
My main concern when doing web services is to get a langage neutral WSDL. I guess that why some people recommand a Contract First approach.
With Axis2, I found it quite difficult to achieve this point.
POJO is the worst case : even simple type like int or string are changed to sun.java type.
Contract First with ADB allows me to get a cleaner WSDL, but axis2 removed from my WSDL more complex type such as enumeration.
Using JAX-WS with Axis2, it seems that annotation does not allow me to change operation name and parameter name in the WSDL.

Compare to the same test done with JAX-WS annotation and JBoss and a code first aproach : I was impress by the JBoss's solution. It was simpler and I got a much better control on my WSDL with this than the Contract First approach with Axis2.

I have used straight up

I have used straight up JAX-WS (the Sun ref impl) for a few examples and tests, from a code first perspective (using the JSR-181 annotations stuff), and had no interoperability problems or issues with being as "expressive" as needed (enumerations, etc).

Check out the various JAX-WS impls, and the Sun WSIT/Tango stuff.

I have yet to refactor any of the existing production service beans we use at my company away from Axis 1 (and or Xfire), but plan to do so soon using standard JAX-WS.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.