The problem with web services and transaction management is that everyone creates a class proxy, and the second one does not get a real implementation to create a proxy server, but a proxy (and everything goes south).
A way to avoid this is to transfer all calls from the webservice endpoint implementation to the service. So, you will need two specific classes: S.
I don't know if this is the best for this, but it is the best I have found.
And it can clear up the code a bit, because it looks like User Manager takes care of web services, which doesn’t look like that.
source share