При отправке макетов на удаленный сервер Wiremock происходит сбой с ошибкой синтаксического анализа JSON

Я пытаюсь отправить сопоставления на удаленный сервер из приложения Spring. Во время отладки я обнаружил, что мой JSON преобразуется в «StubMapping», и это место, где происходит сбой кода со следующей ошибкой.

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"
  } ]
}

Подробности для отправки на удаленный автономный сервер я получил из следующей проблемы (последний комментарий).

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

Мой код для отправки на удаленный сервер выглядит так:

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

Он загружается, когда я запускаю профиль локально.

Пожалуйста, поделитесь своими советами, как решить эту проблему и двигаться дальше.

С Уважением

Обновление: образец файла сопоставления.

        {
  "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"
      }
    }
  ]
}

person Bilbo Baggins    schedule 28.04.2020    source источник
comment
Не могли бы вы добавить пример того, как выглядит ваш json файл с отображением схемы. Похоже, жалоба на документы отсутствует: wiremock.org/docs/stubbing   -  person Mikhail Kopylov    schedule 28.04.2020
comment
@MikhailKopylov только что обновил пример файла сопоставления.   -  person Bilbo Baggins    schedule 28.04.2020
comment
Вроде верно: ключа mappings быть не должно, просто поместите request и response в корень   -  person Mikhail Kopylov    schedule 28.04.2020
comment
wiremock.org/docs/stubbing на той же странице существует пример с сопоставлениями. Я не уверен, почему он не может проанализировать его в списке StubMapping.   -  person Bilbo Baggins    schedule 28.04.2020
comment
Этот пример предназначен для массового импорта, в то время как в вашем примере кажется, что каждый файл в resources должен быть отдельным сопоставлением. Просто попробуйте и посмотрите, работает ли он :)   -  person Mikhail Kopylov    schedule 28.04.2020
comment
хорошо, @MikhailKopylov Я создал несколько файлов только для того, чтобы управлять файлом JSON стало легко. но для одного API я хотел бы также иметь несколько сопоставлений, и по этой причине я использовал сопоставления в JSON, невозможно ли предоставить несколько сопоставлений для одного API и ожидать разных результатов для разных сопоставлений?   -  person Bilbo Baggins    schedule 28.04.2020
comment
Давайте продолжим это обсуждение в чате.   -  person Mikhail Kopylov    schedule 28.04.2020


Ответы (1)


После обсуждения в чате выяснилось, что поддерживается сохранение каждое отображение в отдельном файле. Вот исходный код, отвечающий за это: RemoteMappingsLoader#load

person Mikhail Kopylov    schedule 30.04.2020