Как замокать запрос с помощью wiremock - Webhooks в Docker контейнере

Всем привет. Есть пробелма, прошу помощи, мне нужно.

(+) если это уже сделано.

  1. Поднять wiremock в докер контейнере. (+)
  2. Добавить к нему расширение, что бы он мог использовать в качестве моков не json а java классы с кастомной логикой скачав jar с сайта документации и добив его в папку extensions и добавить аргумент запуска "--extensions org.wiremock.webhooks.Webhooks" (+)
  3. Написать свой мок (+) но я написал но не уверен что он будет работать, по доке я так понял надо так.
class WireMockStub: ResponseDefinitionTransformerV2 {

    override fun getName(): String {
        return "WireMockStub"
    }

    override fun transform(serveEvent: ServeEvent): ResponseDefinition {
        return if (serveEvent.request.url == "/api/webhook/test") {
            ResponseDefinitionBuilder
                .responseDefinition()
                .withStatus(200)
                .withBody("{\"testField\": true }")
                .build()
        } else {
            ResponseDefinition()
        }
    }
}

Это Котлин но думаю джависты поймут

  1. Сбилдить этот класс в jar с метоинформацией и так далее (+)
  2. Положить этот джарник то ли в пакет extensions то ли в пакет mappings, я так и не понял из доки? там 2 варианта, но попробовал оба, и оба не работают (+)(-)
  3. Сделать запрос к wiremock в докере, что бы он отдал мок (-) делаю запрос и в зависимости от того куда положил файл и какие настройки запуска задал оно или мок не видел или не поднимается с ошибкой.

Поведение следующее. если сделать так

WIREMOCK_OPTIONS: "-cp мой_джарник.jar:wiremock-webhooks-extension-3.4.0.jar --extensions org.wiremock.webhooks.Webhooks"

где 2й джарник это расширение в пакете extension что бы работали классы моков, которое я скачал с сайте документации, и в том же пакете лежит мой джарник с раширением, то ваермок не стартует с ошибкой вышеупомянутой, если же сделать так

WIREMOCK_OPTIONS: "--extensions org.wiremock.webhooks.Webhooks, ru.rubbles.gap.wiremock.webhook.WireMockStub"

первый аргумент по доке нужен для включения ваермок хука, что бы все работало а 2й это мое расширение с путем до класса, это я нашёл в другом месте документации, то ваермок поднимается но не видим мока.

404 No response could be served as there are no stub mappings in this WireMock instance.

в общем оба варианта не работают на по разному....
Все варианты конфигурации докер файла запуска, при которых не получилось

  wiremock:
    image: 'holomekc/wiremock-gui:latest'
    container_name: wiremock
    ports:
      - '8090:8080'
    environment:
      WIREMOCK_OPTIONS: "-cp WireMockStub.jar:wiremock-webhooks-extension-3.0.4.jar"
#      WIREMOCK_OPTIONS: "-cp WireMockStub.jar:wiremock-webhooks-extension-3.0.4.jar com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --extensions org.wiremock.webhooks.Webhooks --global-response-templating"
#      WIREMOCK_OPTIONS: "-cp gap-wire-mock-24.1.6-plain.jar:wiremock-webhooks-extension-3.4.0.jar --extensions org.wiremock.webhooks.Webhooks, ru.rubbles.gap.wiremock.webhook.WireMockStub"
#      WIREMOCK_OPTIONS: "--extensions org.wiremock.webhooks.Webhooks, ru.rubbles.gap.wiremock.webhook.WireMockStub"
#      WIREMOCK_OPTIONS: "-cp wiremock-webhooks-extension-3.4.0.jar --extensions org.wiremock.webhooks.Webhooks"
    volumes:
      - ./extensions:/var/wiremock/extensions
      - ./files:/home/wiremock/__files
      - ./mappings:/home/wiremock/mappings
    ```

Ответы (1 шт):

Автор решения: imxo

В итоге все оказалось просто, я компилировал нужный jar на JAVA_17 а нужно было компилировать на JAVA_11, если компилировать на 17 он выдает ошибку о несоответствии версий, а ошибка была не видно так как проект был на Котлин. Как только я создал отдельный репозиторий на JAVA_11 все заработало.

→ Ссылка