【问题解决】Postman 请求报错 500 之 Request processing failed

发布于:2025-03-27 ⋅ 阅读:(80) ⋅ 点赞:(0)

环境版本

  • JDK21
  • spring-webmvc 6.1.14

问题现象

在这里插入图片描述


🔍 先说错误原因

@PathVariable 使用问题(Java高版本17+存在问题)

原始方法:

@GetMapping("/{id}")
public Book getBookById(@PathVariable Integer id) {
	return bookService.getBookById(id);
  1. 方法参数未指定 @PathVariable("id")
    • Spring 无法解析参数名称,需要手动指定
  2. Maven 编译未启用 -parameters 参数
    • Spring 需要这个参数来自动推断参数名称,否则必须手动写 @PathVariable("id")

✅ 解决方案

1️⃣ 显式指定 @PathVariable(“id”)

你的方法可能是这样:

@GetMapping("/{id}")
public Book getBookById(@PathVariable Integer id) {  // ❌ 可能会报错
    return bookService.getBookById(id);
}

请修改为:

@GetMapping("/{id}")
public Book getBookById(@PathVariable("id") Integer id) { // ✅ 显式指定 "id"
    return bookService.getBookById(id);
}

2️⃣ 启用 -parameters 编译参数

如果不想手动写 @PathVariable("id"),你需要修改 Maven 配置:

🔹 修改 pom.xml
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>21</source>  <!-- 或者 17,根据你的 JDK 版本 -->
                <target>21</target>
                <compilerArgs>
                    <arg>-parameters</arg>  <!-- 重点! -->
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

📌 结论

🎯 必须满足以下两点之一

方式 1(手动写 @PathVariable("id")
方式 2(在 pom.xml 里加 -parameters 参数)


网站公告

今日签到

点亮在社区的每一天
去签到