【发布时间】:2016-07-11 18:04:41
【问题描述】:
我试图使用 soapUI 模拟以下 REST Web 服务
样品请求:
<Request>
<HistoricTxn>
<reference>E1</reference>
<method>txn</method>
</HistoricTxn>
</Request>
样本响应1
<Response>
<reason>ACCEPTED</reason>
<status>1</status>
<time>10:12</time>
</Response>
样本响应2
<Response>
<information>Failure on invalid request details</information>
<reason>fails Luhn check</reason>
<status>3</status>
<time>10:15</time>
</Response>
通常我使用这种 groovy 脚本来评估请求并输出动态响应。 (使用soapUI模拟SOAP网络服务时)
常规脚本:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
def holder = groovyUtils.getXmlHolder(mockRequest.getRequestContent());
def reference = holder.getNodeValue("//reference");
if(reference == "Success"){
return "SampleResponse1";
} else {
return "SampleResponse2";
}
不幸的是,当我尝试向此 REST 模拟服务端点发送请求时,它会返回错误。 错误:
com.eviware.soapui.impl.wsdl.mock.DispatchException: 失败 使用脚本调度; java.lang.NullPointerException:无法调用 空对象上的方法 getRequestContent()
我了解错误消息称 getRequestContent() 已返回空值,因此我收到此异常。但同样适用于 SOAP 模拟服务,不会返回空值或导致异常。感谢任何解决此问题的解决方法。
【问题讨论】:
-
你说它适用于soapui。那么,当你得到错误?即,导致错误的服务部署在哪里?
-
嗨 Rao,是的,groovy 脚本适用于soapUI 中的 SOAP Web 服务模拟。但是当我为 REST Web 服务模拟编写相同类型的 groovy 脚本时,情况并非如此。 (使用 http PUT 方法)。 WebService 尚未部署。我只是通过按下soapUI模拟服务窗口中的绿色播放按钮来启动模拟服务。
标签: web-services rest soap mocking soapui