The most straightforward way is to use the implementation of JAX that is bundled with the JDK. That implementation supports most of the basic web service related functions. You need Apache CXF only if you need features not provided by the JDK implementation. The way I've done it is use the
Maven Jaxws-plugin to generate the client stubs, and then use Spring's JaxWsPortProxyFactoryBean to create an instance of the client
Like this
You can inject this anywhere you want and call it. Apache CXF claims to have "better" spring integration, but I'm not sure what it adds wrt Spring integration. JaxWsPortProxyFactoryBean works well enough