当前位置: 首页 > 知识库问答 >
问题:

pact-jvm-provider-maven2.12支持多个头吗?

杨君之
2023-03-14

当交互中有多个头时,pact-jvm-provider-maven2.12版本3.5.25会在运行mvn pact:verify以验证提供者端的契约时引发异常

Caused by: java.lang.NullPointerException: Cannot set property 'text' on null object
at org.codehaus.groovy.runtime.NullObject.setProperty (NullObject.java:80)
at org.codehaus.groovy.runtime.InvokerHelper.setProperty (InvokerHelper.java:197)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty (ScriptBytecodeAdapter.java:484)
at au.com.dius.pact.provider.reporters.JsonReporter.finaliseReport (JsonReporter.groovy:49)
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod (IndyInterface.java:232)
at au.com.dius.pact.provider.ProviderVerifier$_finialiseReports_closure32.doCall (ProviderVerifier.groovy:367)

我的互动是

"interactions": [
    {
      "description": "Consumer interaction of Put Person Algorithm",
      "request": {
        "method": "PUT",
        "path": "model/v0/algorithm/person",
        "headers": {
          "Authorization": "Bearer ACCESS_TOKEN",
          "Content-Type": "application/json"
        },
        "query": {
          "crn": [
            "TENANT_NAME"
          ]
        },
        "body": {
          "standardizers": {},
          "encryption": {},
          "entity_types": {},
          "locale": "en_us"
        }
      },
      "response": {
        "status": 200,
        "headers": {
          "Content-Type": "application/json"
        }
      },
      "providerStates": [
        {
          "name": "B Put Person Algorithm"
        }
      ]
    }
  ],

如果我从请求头中删除“content-type”:“application/json”,这个错误就会消失。这是插件中的一个bug吗?

共有1个答案

梁丘宏硕
2023-03-14

它绝对支持多个头。它可能是一个很大的与特定版本或一些其他工件的测试过程。请您提交一份bug报告,最好是一个可复制的例子?

也值得检查您是否使用了maven插件的最新版本。

 类似资料:
  • 我使用JUnit生成协议和Pacts maven插件将协议发布到协议代理中。我正在使用下面的插件配置 当Consumenr协议在broker中上传时,我只能看到2.0版的consumer协议的单个条目。Eirlier我已经上传了1.0版本Eirlier,它没有出现在UI中。有没有办法在HAL浏览器中看到多个版本的同一提供者协议,并通过Https get请求获得不同版本的协议?目前,我只得到最新的消

  • 我在pact-jvm-consumer中的closeArray有问题。 给定这样的Json,如何构造“dslPart imeiResults=new PactDslJsonBody()”-语句。 我试过这样: 但这不起作用,例如.closearray()不返回PactDslJsonBody,而是返回DslPart,所以在.closearray()之后永远不能有任何东西?我不明白,有人能给我们演示一

  • 问题内容: 例如,我有DBManager.java Singleton类,必须将其部署在集群环境中。这是一个基于Web的应用程序,具有以下部署策略 Apache负载平衡器-> Tomcat 6(群集中有3个服务器)。 我必须为3个tomcat实例维护一个DBManager实例。 我的代码是 我一直在寻找解决此问题的方法,并发现类似JGroups API的东西。可以使用JGroups实现吗?任何想法

  • 本文向大家介绍iOS 支持多个域,包括了iOS 支持多个域的使用技巧和注意事项,需要的朋友参考一下 示例 应用程序支持的每个域都需要提供其自己的apple-app-site-association文件。如果每个域提供的内容不同,则文件的内容也将更改以支持相应的路径。否则,可以使用相同的文件,但是需要在每个受支持的域中访问该文件。

  • 我正在尝试在一个POST API(微服务)上应用契约测试。我已经编写了消费者端的测试用例,并且生成了协议,现在我正在尝试使用pact-python在提供者端验证协议。但我看不出有任何选项可以为API的POST调用输入输入体负载。到目前为止我有这个