解决使用WebTestClient访问接口报[185c31bb] 500 Server Error for HTTP GET “/**“

解决使用WebTestClient访问接口报[185c31bb] 500 Server Error for HTTP GET "/**"

问题发现

WebTestClientSpring WebFlux 框架中提供的用于测试 Web 请求的客户端工具。它可以不用启动服务器,模拟发送 HTTP 请求并验证服务器的响应。

在学习spring-test中,依照文档要求进行编写后报错,完整实例代码如下:

java 复制代码
@Controller
public class TestController {
    @GetMapping(value = "/test")
    public ResponseEntity<String> method(){
        return ResponseEntity.ok("Hello, world!");
    }
}
@WebFluxTest
public class MyServiceTest {
    @Test
    public void test() {
        WebTestClient webTestClient = WebTestClient.bindToController(new TestController())
                .configureClient()
                .build();
        WebTestClient.BodySpec<String, ?> response = webTestClient.get().uri("/test")
                .exchange()
                .expectStatus().isOk()//判断返回200
                .expectBody(String.class).isEqualTo("Hello, world!");//断言判断是否返回Hello, world!
    }
}

报错截图

由于没有启动服务看不到接受端到底是那个地方报错,因为这一个问题卡了三天之久,真的很难受!!!

问题解决

最开始包括,请求参数、返回参数、请求地址、请求方式、注解、等方面都检查(如果返回404更加要检查这些问题),发现都不是这些问题,最后尝试是不是依赖的版本导致的,结果成功解决。

原pom依赖代码:

xml 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
            <version>2.0.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.4.0</version>
            <scope>test</scope>
        </dependency>

发现webflux的版本要低些,尝试改成一样的代码试试,改完以后的依赖代码:

xml 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.4.0</version>
            <scope>test</scope>
        </dependency>

然后再次执行,结果如图:

接口请求成功!!!

网上对WebTestClient遇到的一些错误解决方案比较少,欢迎大家评论区交流。

相关推荐
鱼跃鹰飞2 小时前
设计模式系列:工厂模式
java·设计模式·系统架构
a努力。2 小时前
国家电网Java面试被问:混沌工程在分布式系统中的应用
java·开发语言·数据库·git·mysql·面试·职场和发展
Yvonne爱编码2 小时前
Java 四大内部类全解析:从设计本质到实战应用
java·开发语言·python
J2虾虾2 小时前
SpringBoot和mybatis Plus不兼容报错的问题
java·spring boot·mybatis
毕设源码-郭学长3 小时前
【开题答辩全过程】以 基于springboot 的豪华婚车租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Tao____4 小时前
通用性物联网平台
java·物联网·mqtt·低代码·开源
曹轲恒5 小时前
SpringBoot整合SpringMVC(上)
java·spring boot·spring
JH30735 小时前
Java Spring中@AllArgsConstructor注解引发的依赖注入异常解决
java·开发语言·spring
码农水水6 小时前
米哈游Java面试被问:机器学习模型的在线服务和A/B测试
java·开发语言·数据库·spring boot·后端·机器学习·word
2601_949575866 小时前
Flutter for OpenHarmony二手物品置换App实战 - 表单验证实现
android·java·flutter