如何在 Docker 容器中使用wiremock - Webhooks 阻止请求?

问题描述 投票:0回答:1

有问题,我寻求帮助,我需要。

(+) 如果这已经完成了。

  1. 在 docker 容器中升起wiremock。 (+)
  2. 向其添加扩展,以便它可以不使用 json,而是使用具有自定义逻辑的 java 类作为模拟,方法是从文档站点下载 jar 并将其添加到扩展文件夹并添加启动参数“--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()
        }
    }
}

这是 Kotlin,但我认为哈维主义者会理解

  1. 在包含元信息等的 jar 中构建此类 (+)
  2. 将这个 jarnik 放在扩展包中或映射包中,我从文档中仍然不明白?有2个选项,但我都尝试了,但都不起作用(+)(-)
  3. 在 Docker 中向wiremock发出请求,以便它给出模拟(-) 我提出请求,根据我放置文件的位置以及我设置的启动设置,它要么没有看到模拟,要么没有以错误开始。

行为如下。 如果你这样做

WIREMOCK_OPTIONS:“-cp my_jarnik.jar:wiremock-webhooks-extension-3.4.0.jar --extensions org.wiremock.webhooks.Webhooks”

其中第二个 jarnik 是扩展包中用于模拟类工作的扩展,我从文档站点下载了它,并且我的带有扩展的 jarnik 位于同一个包中,然后wiremock不会以上述错误启动,但如果你这样做

WIREMOCK_OPTIONS:“--扩展org.wiremock.webhooks.Webhooks,ru.rubbles.gap.wiremock.webhook.WireMockStub”

需要码头中的第一个参数来启用wiremock挂钩,以便一切正常,第二个参数是我的类路径扩展,我在文档的其他地方找到了这个,然后wiremock升起,但我们没有看到模拟。

404 无法提供响应,因为此 WireMock 实例中没有存根映射。

一般来说,这两个选项的工作原理没有什么不同......

java spring docker webhooks wiremock
1个回答
0
投票

最后,一切都变得简单了,我在JAVA_17上编译了所需的jar,但是需要在JAVA_11上编译,如果在17上编译就会出现版本不匹配的错误,并且该错误是不可见的,因为项目是用 Kotlin 语言编写的。当我在 JAVA_11 上创建一个单独的存储库时,一切都正常了。

© www.soinside.com 2019 - 2024. All rights reserved.