【问题标题】:Soap UI Mock service for Rest not working when deployed as war部署为战争时,用于 Rest 的 Soap UI Mock 服务无法正常工作
【发布时间】:2019-04-17 17:37:22
【问题描述】:

我想为端点创建 SoapUI 模拟服务:“/product/123456/details/”。这里 123456 是路径变量。 我创建了一个soap ui模拟服务,路径为“/product/”,作为回应,我只是返回路径(仅用于测试)。 当我在 SoapUI 的 8210 端口上运行这个模拟服务时,点击“http://localhost:8210/product/123456/details”效果很好。 我收到以下回复。

"/product/123456/details"

但是当我在运行在 8080 端口的 tomcat 中将其部署为 mymockwar 战争时, 如果我点击“http://localhost:8080/mymockwar/product/123456/details/”, 然后我得到如下响应。

<html>
    <head>
        <title>soapUI MockServices Log for project [MyNewMock]</title>
    </head>
    <body>
        <h3>Log is disabled.</h3>
    </body>
</html>

现在,如果我点击“http://localhost:8080/mymockwar/product/”,它会起作用并给我回复

"/product/"

在 tomcat 中部署时如何使用路径变量? Tomcat版本:7.0.22 SoapUI 版本:4.5.2

下面的模拟服务 xml。

<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project xmlns:con="http://eviware.com/soapui/config" activeEnvironment="Default" name="MyNewMock" resourceRoot="" soapui-version="4.5.2" abortOnError="false" runType="SEQUENTIAL">
   <con:settings />
   <con:mockService port="8210" path="/product/" host="localhost" name="testSoapMock" bindToHostOnly="false" docroot="">
      <con:settings>
         <con:setting id="com.eviware.soapui.impl.wsdl.mock.WsdlMockService@require-soap-action">false</con:setting>
      </con:settings>
      <con:properties />
      <con:onRequestScript>def method = mockRequest.method;
def path = mockRequest.path;
log.info path
def response = mockRequest.getHttpResponse()
            response.setContentType("application/json")
            def writer = response.getWriter();
            writer.write(path)
            writer.close()</con:onRequestScript>
   </con:mockService>
   <con:properties />
   <con:wssContainer />
</con:soapui-project>

【问题讨论】:

  • tomcat日志有异常吗?
  • 没有。日志中没有异常

标签: rest tomcat mocking soapui


【解决方案1】:

我遇到了同样的异常,解决方案是 url 中的名称和 xml 请求中的名称它们应该相同或名称冲突

例如:

URL: http://localhost:8088/mocks/queryBalance

Request :<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns3:queryBalanceRequestMsg xmlns:ns2="http://www.huawei.com/bme/cbsinterface/cbscommon" xmlns:ns3="http://www.huawei.com/bme/cbsinterface/arservices" xmlns:ns4="http://cbs.huawei.com/ar/wsservice/arcommon">
      <requestHeader>
        <ns2:ownershipInfo>
          <ns2:beId>101</ns2:beId>
        </ns2:ownershipInfo>
        <ns2:accessSecurity>
          <ns2:loginSystemCode>ecare01</ns2:loginSystemCode>
          <ns2:password>Admin123!</ns2:password>
        </ns2:accessSecurity>
        <ns2:operatorInfo>
          <ns2:operatorId>9001</ns2:operatorId>
        </ns2:operatorInfo>
      </requestHeader>
      <queryBalanceRequest>
        <ns3:serviceNumber>1511661998</ns3:serviceNumber>
      </queryBalanceRequest>
    </ns3:queryBalanceRequestMsg>
  </soap:Body>
</soap:Envelope>

当 URL 为 queryBalance 时,它​​会返回您的异常

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多