About Apache CXF:
- CXF supports several standards including SOAP, the WSI Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy, and WS-SecureConversation.
- Apache CXF offers both contract-last (starting with Java) and Contract-first (starting with the WSDL) approaches.
- Apache CXF implements JAX-WS and JAX-RS.
About Spring WS:
- Spring WS offers “only” contract-first, starting from an XSD Schema.
- Spring WS supports SOAP, WS-Security, WS-Addressing.
So, at the end, I see Spring WS as a minimal web services framework but consider that it doesn’t (in my opinion) have any advantages over Apache CXF (which integrates extremely well with Spring). Between both, I’d pick up Apache CXF.