Alex Rivera | Logout

Java Web Service framework/library, which is a better one and why?

Asked 2009-01-14T10:51:15.183
25

Currently I am evaluating number of web service frameworks in Java. I need web service framework that will help me to expose some functionality of existent application running on JBoss, The application is mostly developed using Spring and POJOs (no EJBs).

What I need is a framework having following properties:

  1. It should provide tools for automatic generation of boilerplate code and save time by eliminating repetitive tasks, for example tools generating WSDL from Java (java2wsdl), tools generating endpoints etc.
  2. Applications should be easily deployed on existent J2EE platform (JBoss), this means that it should contain as less as possible configuration files (like axis2.xml in axis2 framework).
    • Also it is preferred to be able to deploy web service within .war archive of existent application. (it seems that Axis2 need a separate archive for web service app.)
    • It will be very cool to use a combination of POJOs and Spring.
    • Generally, the framework should have clean structure and design (for example Spring-WS lacks it), good documentation and whatever else characterizes a good piece of software.
    • It is preferred that framework incorporates some standard features like JAX-WS etc. instead of vendor specific methods.

I have briefly examined

  • Axis2
  • Apache CXF
  • and Sun's Metro
  • Spring WS

But still it is difficult to decide what to use in my case:

  • Axis2 seems to be so low level, it requires separate application archive and lots of configurations
  • Spring WS seems to be too opaque and "sophisticated for impression purposes (?)"
  • Apache CXF and Metro probably are two frameworks that I prefer to chose from but still

I need your opinion and experience about usage of some of them in a real-world applications.

Edit
Report

2 Answers

4

We have tried Metro and CXF and kept CXF because Metro includes too many dependencies like Sun's APIs in its jar files which makes it difficult to integrate in another application server than Glassfish. CXF has a cleaner packaging with explicit external dependencies. We also failed to enable Gzip compression with Metro while it worked like a charm with CXF.

answered 2009-04-21T19:07:01.357
3

I'd go with Spring WS first and XFire second. I'm a Spring user, so I'm used to the opacity.

answered 2009-01-14T15:30:37.087

Your Answer