升级到Spring Boot 3时出现wiremock问题

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

将 Spring Boot 2.5 升级到 3.0 时,我遇到了 Wiremock 的一些问题,可能是由于迁移到 jakarta 命名空间所致。即使升级到最新的

wiremock-jre8
,即
2.35.0
(截至 2022 年 12 月)似乎也没有帮助。我收到此错误:

java.lang.NoClassDefFoundError: javax/servlet/DispatcherType

    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:375)
    at com.github.tomakehurst.wiremock.jetty9.JettyHttpServerFactory.getServerConstructor(JettyHttpServerFactory.java:37)
    at com.github.tomakehurst.wiremock.jetty9.JettyHttpServerFactory.<clinit>(JettyHttpServerFactory.java:30)
spring-boot wiremock
4个回答
29
投票

看起来这是一个与 jakarta 命名空间和 Jetty 11 支持相关的已知问题,需要一段时间才能正确修复:

https://github.com/wiremock/wiremock/issues/1760

如问题中所示,使用

wiremock-jre8-standalone
而不是
wiremock-jre8
有助于解决该问题,直到它在 Wiremock 3.x 中得到正确修复

编辑,2023 年 10 月:这些现已可用并且应该有所帮助:


2
投票

例如Wiremock 版本 1.58 可以与 Spring Boot 3 结合使用(如果您不介意使用旧版本)


2
投票

使用

        <dependency>
            <groupId>com.github.tomakehurst</groupId>
            <artifactId>wiremock-jre8-standalone</artifactId>
            <version>3.0.1</version>
        </dependency>

或者对于 Spring boot 3:

        <dependency>
            <groupId>org.wiremock</groupId>
            <artifactId>wiremock-standalone</artifactId>
            <version>3.3.1</version>
        </dependency>

1
投票

您也可以使用wiremock 3.0.0-beta2+版本来解决该问题。我刚刚测试过。

https://groups.google.com/g/wiremock-user/c/knTaDyBY70Q

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