Discussions

News: Article: Axis, Axis2 and CXF: Surveying the WS Landscape

  1. Bjorn Townsend has written "Axis, Axis2 and CXF: Surveying the Open Source Web Services Landscape," an article that compares the Axis frameworks (1 and 2) with CXF, now under the Apache umbrella after having been retooled from its XFire and Celtix origins.
    Should existing applications using Axis 1.x, XFire or Celtix move to the new versions of those projects? If a developer does decide to migrate his or her application to one of the new frameworks, which one should they use? Conversely, if one is writing a new web service from the ground up and no migration is required, which one should they use? Is one framework inherently better than the other? Let’s tackle these questions in order. Firstly, should existing applications migrate? The answer to that question depends largely on the point in its lifecycle your application has reached. A project which is very static and mature, with few or no changes expected in the foreseeable future, probably doesn’t need to migrate as the current framework is serving its needs well enough. If the application’s performance or functionality is impacted by bugs, it might be worth migrating, particularly for users of Axis 1.x, as most of the developer community around Axis has refocused its resources around Axis2. An Axis 1.5 release is in the works, but it may not happen for many months down the road. As for which project to migrate to, it might be easiest to move to to the next generation of your current framework. Both Axis2 and CXF provide migration guides that give developers tips on how to migrate from their previous versions, but as of this writing neither project has provided migration tools or guides for porting web services from one framework to another. In such a migration, though, it’s always worth looking at all the options available. Axis2 and CXF each take different approaches to web service development, and these approaches will appeal more to some developers than others. This brings us to a good point to compare Axis2 and CXF on their own merits...

    Threaded Messages (12)

  2. i dont like AXIS![ Go to top ]

    The performance of AXIS1 is not good! AXIS2 also conform to JAX-WS2 ?
  3. JAX-WS2[ Go to top ]

    Yes Axis2 does support JAX-WS2.
  4. really?[ Go to top ]

    CXF fully supports JAX-ws20 But i dont think AXIS2 also !
  5. JAX-WS 2.0[ Go to top ]

    If you find issues with Axis2's JAX-WS support please report it in JIRA.
  6. Axis2 and WS-Policy[ Go to top ]

    Bjorne, nice, balanced article. However, your comment about WS-Policy support in Axis2 is dead wrong .. not only does Axis2 support WS-Policy, its actually Axis2's WS-Policy implementation (Apache Neethi) that CXF uses to implement policy! Other than that Axis2 also supports WSDL 2.0.
  7. Re: Axis2 and WS-Policy[ Go to top ]

    Bjorne, nice, balanced article.

    However, your comment about WS-Policy support in Axis2 is dead wrong .. not only does Axis2 support WS-Policy, its actually Axis2's WS-Policy implementation (Apache Neethi) that CXF uses to implement policy!

    Other than that Axis2 also supports WSDL 2.0.
    You make it sounds like Neethi is only for Axis2 usage and we lifted it from you. :-) Its really in the WS Commons at Apache though. There is a fair amount of sharing between both projects. For instance WSS4J which was originally developed for Axis1. Or Jettison which I wrote for CXF is distributed by Axis2 as well (as well as Metro and Jersey I believe!). I am a pragmatist and it definitely makes sense to try share components wherever we can - it makes all projects better. So I view this as feature :-)
  8. Re: Axis2 and WS-Policy[ Go to top ]

    Come on Dan you know what I meant. Neethi (which means rules/policies in Sinhalese) was written for Axis2, it depends on Axiom (which is the XML Infoset model created for Axis2) and was originally created by Sanka Samaranayake and his team as a final year project at Univ. of Moratuwa in Sri Lanka and I was their project supervisor. Sanka is of course now an Axis2 committer. I didn't say Neethi "belongs" to Axis2 - what I pointed out that its ironic to say Axis2 doesn't support WS-Policy in that situation. *Of course* the code is free to use and we're all happy that CXF is using it as-is rather than copying and creating a clone as was first attempted. Its also used by a bunch of other Java products- Neethi is pretty much the standard Java policy impl in town. (Ah I can see the Sun & JBoss guys getting all upset now ;-)) I'm glad the projects interdepend on code written by both teams. Its only too bad we don't interdepend more!
  9. In my opinion, you're not really doing a very good job surveying the landscape of web service technologies out there if you don't include Spring WS.
  10. How about Jboss WS[ Go to top ]

    I was wondering how does JbossWS stack lines up in comparison to these stacks. It will be good to know that.
  11. www.programmera.net[ Go to top ]

    I was wondering how does JbossWS stack lines up in comparison to these stacks. It will be good to know that.

    Well, Ive been trying to make the JBoss web service implementation generate Java classes from a pretty standard WSDL-file, and Im sad to say that more often than not it does not work. ------------------ 1. JBoss 4.0.4: The wstools.sh has a bug (misses 2 qoutes) so you have to fix that before you do anything else. When I fixed that I saw that the generated Java classes had inverted package names. I lost my will to live and gave up. ------------------ 2. JBoss 4.0.5: wstools.sh works but here you have to give the portType element the same name as the port element, or else it wont work. Over all the wstools.sh works and it is possible to deploy your web service. But its quite hard to find documentation how to write the JBoss specific XML to deploy a client that uses the generated code. I did not find any good example. Anyone? ------------------ 3. JBoss 4.2.2 (With JBossWS 1.2.1 or 2.0.1 installed): Here I want to use the new wsconsume.sh script to generate code from a standard WSDL (that confirms to WS-I Basic Profile 1.0 and works well with wstools.sh). I was not suprised when I got the following error: $:~/jboss-4.2.2.GA/bin$ ./wsconsume.sh -k ~/java/Calculator_Jboss422/ws/Calculator.wsdl [: 71: /home/olle/jboss-4.2.2.GA/client/jbossws-client.jar: unexpected operator JBossWS-SunRI stack deployed Exception in thread "main" java.lang.IllegalStateException: Failed to load: org.jboss.ws.tools.jaxws.impl.SunRIConsumerFactoryImpl at org.jboss.wsf.spi.util.ServiceLoader.loadDefault(ServiceLoader.java:205) at org.jboss.wsf.spi.util.ServiceLoader.loadFromSystemProperty(ServiceLoader.java:138) at org.jboss.wsf.spi.util.ServiceLoader.loadService(ServiceLoader.java:68) at org.jboss.wsf.spi.tools.WSContractConsumer.newInstance(WSContractConsumer.java:72) at org.jboss.wsf.spi.tools.WSContractConsumer.newInstance(WSContractConsumer.java:56) at org.jboss.wsf.spi.tools.cmd.WSConsume.importServices(WSConsume.java:189) at org.jboss.wsf.spi.tools.cmd.WSConsume.main(WSConsume.java:79) Caused by: java.lang.ClassNotFoundException: org.jboss.ws.tools.jaxws.impl.SunRIConsumerFactoryImpl at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.jboss.wsf.spi.util.ServiceLoader.loadDefault(ServiceLoader.java:200) ... 6 more ------------------ 4. JBoss 5.0.0 Beta2 (With JBossWS 1.2.1 or 2.0.1 installed): Same as above. ------------------ The bug above might be reported at the JIRA site, but I could not find it. Another very similar is reported see http://jira.jboss.com/jira/browse/JBPAPP-426 , and yet another critical bug is the: http://jira.jboss.org/jira/browse/JBWS-1735 I would not call this quality code.
  12. Re: www.programmera.net[ Go to top ]

    Still not fixed 8+ months later. Remember taking a WSDL into JBuilder 6.0 about 4 years and got talking to an Actuate WS in five minutes. Have spent days trying to get a WS to work in JBoss 4.2.1 and WSConsume to work, to no avail.
  13. Interested in Spring WS two[ Go to top ]

    Seems Spring WS released just recently?