我想问你是否可以在SOAPUI中更改模拟响应,并将其链接到MockService所基于的真实Web服务操作。
我需要这样做,因为在SOAPUI中我可以访问外部Web服务;但出于安全/配置原因,我无法访问Eclipse中本地代码中的外部Web服务(我在Eclipse中尝试了几种代理配置但没有成功)。
我想要做的是将到达模拟服务的请求传递给原始Web服务,并在不进行操作的情况下返回响应。
答案 0 :(得分:0)
我终于把'Dispatch'变成了SCRIPT并添加了这个脚本:
// import all the namespaces to trim the lines of codes
import com.eviware.soapui.impl.wsdl.WsdlProject
import com.eviware.soapui.impl.wsdl.WsdlInterface
import com.eviware.soapui.impl.wsdl.WsdlRequest
import com.eviware.soapui.impl.wsdl.WsdlSubmitContext
import com.eviware.soapui.impl.wsdl.WsdlSubmit
import com.eviware.soapui.model.iface.Response
import com.eviware.soapui.model.mock.MockResponse
// get reference to project
WsdlProject project = (WsdlProject)mockOperation.mockService.project
// get reference to request
WsdlRequest request = (WsdlRequest)project.interfaces["TheRealWebService"].operations["TheRealOperation"].getRequestByName("TheRealRequest")
// set request content from incoming mockRequest
request.setRequestContent(mockRequest.getRequestContent())
// submit request asynchronously
WsdlSubmit submit=request.submit( new WsdlSubmitContext( request ), false )
// wait for the response
Response response = submit.getResponse();
// get reference to MockResponse
MockResponse mockResponse=mockOperation.getMockResponseByName("Response1")
// set the mock response content from response received by the request.
mockResponse.setResponseContent(response.getContentAsString())