Hi Tim,
Sounds reasonable.
To make the request from the mock, I would say there are 3 main options:
1) Call the actual service using a thrid party java/Groovy library e.g. like you said using ws-lite or similar
2) Call the actual service using the SoapUI objects, as per Ole's solution in the post you referenced.
3) Call the actual service using by triggering another seperate TestCase which contains a Request TestStep to call your actual service.
I would say all are fine options, and I could discuss the others/provide code advice, but since you propabably already considered the first two options, I'll try to describe my idea for option 3) incase you prefer it as a less code centric option.
So the main part of option 3 is how to trigger the separate TestCase, this can be done in the mock script using something like:
//You can pass data when calling the TestCase e.g. the mock request
def map = new StringToObjectMap()
map.put("responseData", requestToMock)
def testSuite = context.mockService.project.
getTestSuiteByName("Separate TestSuite")
def callBackTestCase = testSuite.getTestCaseByName("Separate TestCase")
def callBackRequest = (WsdlTestRequestStep) callBackTestCase.getTestStepsOfType(WsdlTestRequestStep.class).get(0)
(This code was adapted from a different solution, but similar use-case http://community.smartbear.com/t5/SoapUI-Open-Source/How-to-simulate-an-asynchronous-web-service-with-mock-services/m-p/98365#M17496)
Does this make sense? So basically option 3 involves a small amout of Groovy code in the mock to get SoapUI to forward the mock request to the actual service, maybe also has the avantage of being able to add Assertions for the forwarding Request TestStep..
Let me know if you'd like to discuss any points.
Hope this helps,
Cheers,
Rupert