首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于404,Spring-cloud-contract stubrunner测试运行失败

由于404,Spring-cloud-contract stubrunner测试运行失败
EN

Stack Overflow用户
提问于 2017-10-23 21:40:30
回答 1查看 1K关注 0票数 0

当我使用stubrunner运行我的客户端应用程序时,我得到了以下错误

代码语言:javascript
复制
    Getting org.springframework.web.client.HttpClientErrorException: 404    
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:63)  
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700)

wiremock提供了以下信息

代码语言:javascript
复制
    {
  "url" : "/app/crm/customer/40",
  "absoluteUrl" : "http://localhost:6565/app/crm/customer/40",
  "method" : "GET",
  "clientIp" : "127.0.0.1",
  "headers" : {
    "accept" : "text/plain, text/plain, application/json, application/json, application/*+json, application/*+json, */*, */*",
    "domain" : "IND",
    "host" : "localhost:6565",
    "connection" : "Keep-Alive",
    "user-agent" : "Apache-HttpClient/4.5.3 (Java/1.8.0_144)",
    "accept-encoding" : "gzip,deflate"
  },
  "cookies" : { },
  "browserProxyRequest" : false,
  "loggedDate" : 1508757427831,
  "bodyAsBase64" : "",
  "body" : "",
  "loggedDateString" : "2017-10-23T11:17:07Z"
}
Closest match:
{
  "urlPattern" : "/app/crm/customer/[0-9]{2}",
  "method" : "GET",
  "headers" : {
    "Content-Type" : {
      "equalTo" : "application/json"
    },
    "domain" : {
      "equalTo" : "IND"
    }
  }
}

我的合同是这样的

代码语言:javascript
复制
    package contracts

import org.springframework.cloud.contract.spec.Contract

Contract.make {

    request {
        method 'GET'
        url value(consumer(regex('/app/crm/customer/[0-9]{2}')), producer('/app/crm/customer/40'))
        headers {
           contentType(applicationJson())

         }   
    }

    response {
        status 200
        headers {
            contentType(applicationJson())
        }
    }
}

我试图通过改变内容类型和其他我做错的details.where来解决这个问题。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-23 22:03:14

它写的就是问题所在。换句话说,答案就在你的问题中。

为了匹配您的请求,它需要如下所示

代码语言:javascript
复制
{
  "urlPattern" : "/app/crm/customer/[0-9]{2}",
  "method" : "GET",
  "headers" : {
    "Content-Type" : {
      "equalTo" : "application/json"
    },
    "domain" : {
      "equalTo" : "IND"
    }
  }
}    

这些是您正在传递的标头

代码语言:javascript
复制
"headers" : {
    "accept" : "text/plain, text/plain, application/json, application/json, application/*+json, application/*+json, */*, */*",
    "domain" : "IND",
    "host" : "localhost:6565",
    "connection" : "Keep-Alive",
    "user-agent" : "Apache-HttpClient/4.5.3 (Java/1.8.0_144)",
    "accept-encoding" : "gzip,deflate"
  },

我看不到Content-Type等于application/json标头。这就是请求不匹配的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46890834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档