views:

2100

answers:

4

Everyone's saying "Contract-First" approach to design WS is more inclined to SOA style design. Now, if we take the available open-source frameworks available to achieve that we have Spring-ws and also Axis2(which supports both styles). I have a task to design SOA based e-commerce app. where loose coupling, quick response, security and scalability are the key points. So it is very important to choose the right framework from the start.

Based on past experiences, which of them or something else do you guys think to be a more appropriate option for my requirements.

A: 

If you're going to create spring based application then use spring-ws. If not, you can look at jax-ws referense implementation and metro service stack. And here is another good web-service stack you may want to look at - CXF.

gedevan
Well, I do not totally agree. Creating a Spring application **do not** exclude JAX-WS RI or Apache CXF as both stacks offer very good integration with Spring (it's actually very difficult for a modern framework to ignore Spring). So choosing between Spring-WS, JAX-WS RI, CXF is not that simple.
Pascal Thivent
If spring already provide its own web-service stack, why should I use another? libraries... another dependency, another portion of kilobytes. I'm not saying that spring-ws is the best choise ever, but it's a good starting point to develop web-service application with spring. That's all :)
gedevan
A: 

That is a tough question.

I have used Axis2 in the past but am relatively new to Spring WS. What I do like about spring WS is the options I get with respect to what API's I use to handle my incoming and outgoing requests (XmlBeans, JDOM, Castor etc.) and the excellent integration with a Spring based stack.

You mentioned the Contract First approach. I am not sure if Axis 2 has something like this but Spring WS has a schema to wsdl generator. You can see an example of this here:

http://static.springsource.org/spring-ws/sites/1.5/reference/html/tutorial.html

Both the frameworks offer all that you ask for in terms of features such as loose coupling, response, scalability etc. Spring-ws may also offer good integration with Acegi as far as I think but I have really not dived deep into that topic.

Deep Kapadia
+2  A: 

For contract first I'd recommend using JAX-WS. Either CXF, JAX-WS RI or Metro (Metro = JAX-WS RI + WSIT) seem to be the best implementations around that can take any WSDL contract and generate the POJOs (or vice versa).

James Strachan
A: 

Axis2 is what I work with and is pretty solid solution. Also, I'm kind of allergic to Spring.

Ubersoldat