You can read more about this problem in a blog post at czechscala.com via web.archive.org (in English) or at dev.etnetera.cz (in Czech).
An implementation of a trivial SOAP web service using JAX-WS and the built-in HTTP server in JRE.
The folder contains an SBT project.
> sbt run
This will start the web service endpoint at http://localhost:8080/ws-server/AddNumbers.
A Play application that consumes the SOAP web service.
It uses the CXF to implement a non-blocking SOAP client. Without CXF in classpath, the code will still work, but JAXWS will revert to the default implementation (JAXWS-RI - at least in Oracle Java) that uses blocking HTTP client.
The client expects the web service to be running at: http://localhost:8080/ws-server/AddNumbers.
See play-client/app/controllers/AsyncSoapController.scala for the details.
Start Play server in dev mode:
> sbt run
The Play's default HTTP port is 9500 so to access the controller just point your browser to http://localhost:9500/add?a=10&b=50 (for sum of 10 50).