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


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

    问题发现

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

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

    @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!
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    报错截图
    在这里插入图片描述

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

    问题解决

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

    原pom依赖代码:

            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webfluxartifactId>
                <version>2.0.6.RELEASEversion>
            dependency>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <version>2.4.0version>
                <scope>testscope>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webfluxartifactId>
                <version>2.4.0version>
            dependency>
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-testartifactId>
                <version>2.4.0version>
                <scope>testscope>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    然后再次执行,结果如图:
    在这里插入图片描述
    接口请求成功!!!

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

  • 相关阅读:
    ubuntu 安装jdk8
    支持注册API类型
    制作一个简单HTML校园网页(HTML+CSS)学校网站制作 校园网站设计与实现
    01. 板载硬件资源和开发环境
    response.setHeader的各种用法
    9.2 Windows钩子
    Python基础知识从hello world 开始(第三天)
    操作系统的接口
    菜鸟学Kubernetes(K8s)系列——(三)关于Service、Ingress
    jquery的datatable插件
  • 原文地址:https://blog.csdn.net/qq_39940674/article/details/133979442