...
A way to solve this issue could be to define an abstract class holding this pattern in a generic method, which would call an abstract method responsible for the "business" part of the code, in the same way as for UnrestrictedSessionRunner.
You can learn here how to build a client-side SOAP based WebService in Nuxeo.