Pushing mocks to remote wiremock server fails with "JSON Parsing" Error

Bilbo Baggins :

I am trying to post mappings to a remote server from a spring application. What I found while debugging is that my JSON gets converted to "StubMapping" and this is the place where the code is failing with the following error.

Error creating bean with name 'wiremockConfig' defined in file [C:\Users\Addy\school-impl-api\target\classes\com\test\school\project\wiremock\WiremockConfig.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.test.order.implementation.product.wiremock.WiremockConfig$$EnhancerBySpringCGLIB$$b100848d]: Constructor threw exception; nested exception is com.github.tomakehurst.wiremock.common.JsonException: {
  "errors" : [ {
    "code" : 10,
    "source" : {
      "pointer" : "/mappings"
    },
    "title" : "Error parsing JSON",
    "detail" : "Unrecognized field \"mappings\" (class com.github.tomakehurst.wiremock.stubbing.StubMapping), not marked as ignorable"
  } ]
}

I got details for posting to a remote standalone server from the following issue (last comment).

https://github.com/tomakehurst/wiremock/issues/1138

My code for posting to the remote server is like this:

WireMock wm = new WireMock("https", "wiremock-poc.apps.pcf.sample.int", 443);
wm.loadMappingsFrom("src/main/resources"); // Root dir contains mappings and __files

This gets loaded when I run the profile local.

Please provide your guidance on how to solve this and move further.

Regards

Update: Sample mapping file.

        {
  "mappings": [
    {
      "request": {
        "method": "GET",
        "urlPathPattern": "/school/admin/rest/users/([0-9]*)?([a-zA-Z0-9_\\-\\=\\?\\.]*)"
      },
      "response": {
        "status": 200,
        "headers": {
          "Content-Type": "application/json"
        },
        "bodyFileName": "./mockResponses/School-getUser.json"
      }
    }
  ]
}
Mikhail Kopylov :

After a discussion in chat found out that it's supported to keep each mapping in a separate file. Here's the source code that is responsible for that: RemoteMappingsLoader#load

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related