title: PACT jvm matching rules are being ignored when running test
body: <p>I'm using PACT JVM <a href="https://github.com/DiUS/pact-jvm/tree/master/provider/pact-jvm-provider-junit" rel="nofollow noreferrer">https://github.com/DiUS/pact-jvm/tree/master/provider/pact-jvm-provider-junit</a>
  I don't know why the matching rules in my contact are being ignored.
  My HTTP test</p>
  
  <pre><code>@RunWith(SpringRestPactRunner.class) // Say JUnit to run tests with custom Runner
  @Provider("provDataTest")// Set up name of tested provider
  @PactBroker(host="pact-broker.services", port = "80")
  @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
          properties = {"spring.profiles.active=dev"},
          classes = Application.class)
  public class ContractTesting {
  
      private static String token;
  
      @BeforeClass //Method will be run once: before whole contract test suite
      public static void setUpService() {
          //Run DB, create schema
          //Run service
          //...
          System.out.println("Now service in default state");
      }
  
      @TargetRequestFilter
      public void exampleRequestFilter(HttpRequest request) {
  
      }
  
      @State("Check correct data json structure in case code: 401")
      public void checkDataInCaseUnauthorized() {
  
      }
  
      @TestTarget // Annotation denotes Target that will be used for tests
      public final Target target = new HttpTarget(8082);
  </code></pre>
  
  <p>And my Contract file</p>
  
  <pre><code>{
    "provider": {
      "name": "provDataTest"
    },
    "consumer": {
      "name": "test"
    },
    "interactions": [
      {
        "description": "Read all links_401",
        "request": {
          "method": "GET",
          "path": "/v1/consumer/me/link_social_account",
          "headers": {
            "invalidAuth": "401"
          }
        },
        "response": {
          "status": 401,
          "headers": {
            "Content-Type": "text/json;charset=utf-8"
          },
          "body": {
            "error": {
              "code": 401,
              "message": "session incorrect",
              "errors": []
            }
          },
          "matchingRules": {
            "body": {
              "$.error": {
                "matchers": [
                  {
                    "match": "type"
                  }
                ],
                "combine": "AND"
              },
              "$.error.code": {
                "matchers": [
                  {
                    "match": "integer"
                  }
                ],
                "combine": "AND"
              },
              "$.error.message": {
                "matchers": [
                  {
                    "match": "type"
                  }
                ],
                "combine": "AND"
              },
              "$.error.errors[*].message": {
                "matchers": [
                  {
                    "match": "type"
                  }
                ],
                "combine": "AND"
              },
              "$.error.errors[*].field": {
                "matchers": [
                  {
                    "match": "type"
                  }
                ],
                "combine": "AND"
              }
            },
            "header": {
              "Content-Type": {
                "matchers": [
                  {
                    "match": "text/json;charset=utf-8",
                    "regex": "regex"
                  }
                ],
                "combine": "AND"
              }
            }
          }
        },
        "providerStates": [
          {
            "name": "Check correct data json structure in case code: 401"
          }
        ]
      }
    ],
    "metadata": {
      "pactSpecification": {
        "version": "3.0.0"
      },
      "pact-jvm": {
        "version": "3.2.11"
      }
    }
  }
  
  </code></pre>
  
  <p>And show error after run</p>
  
  <pre><code>Read all links_401 returns a response which has a matching body
        Read all links_401 returns a response which has a matching
  body=BodyComparisonResult(mismatches={/=[BodyMismatch(expected=[B@480e8a7a, actual=[B@10378c35, mismatch=Actual body '[B@10378c35' is not equal to the expected body '[B@480e8a7a', path=/, diff=null)]},
   diff=[-{"error":{"code":401,"message":"session incorrect","errors":[]}}, 
  +{"error":{"code":401,"message":"session incorrect, please login again (CR_A1004)","errors":[]}}])
  </code></pre>
  
  <p>I have tried to change regex but the problem is still happening.
  It is only correct when message data correct.</p>
  
  <p>Please help to give my point incorrect.</p>
  
  <p>Thanks,</p>