我的应用程序使用带有lombok的spring boot,当我使用@Data
annation将导致
java.lang.IllegalArgumentException: No converter found for return value of type.
当我明确写出getter和setter时,它运作良好 请帮帮我,谢谢;代码:
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/{id}")
public User query(@PathVariable long id) {
if (id == 1L) {
return new User(1l);
} else {
return new User(2L);
}
}
}
@Data
public class User {
private long userId;
private String userName;
private String password;
private String mobile;
private String address;
public User() {
}
public User(long userId){
this(userId, "zhengfc", "pwd", "13322222222", "shanghai-zhengjiang");
}
public User(long userId, String userName, String password, String mobile, String address) {
this.userId = userId;
this.userName = userName;
this.password = password;
this.mobile = mobile;
this.address = address;
}
}
答案 0 :(得分:0)
就我个人而言,我尝试过像你一样。
这是模型
``` 包info.giaomo.website.controller;
import lombok.Data;
/**
* 把今天最好的表现当作明天最新的起点..~
* いま 最高の表現 として 明日最新の始発..~
* Today the best performance as tomorrow newest starter!
* Created by IntelliJ IDEA.
*
* @author: xiaomo
* @github: https://github.com/qq83387856
* @email: hupengbest@163.com
* @QQ_NO: 83387856
* @Date: 2016/11/8 10:29
* @Description: 用户实体类
* @Copyright(©) 2015 by xiaomo.
**/
@Data
public class Test {
private long userId;
private String userName;
private String password;
private String mobile;
private String address;
public Test() {
}
public Test(long userId){
this(userId, "zhengfc", "pwd", "13322222222", "shanghai-zhengjiang");
}
public Test(long userId, String userName, String password, String mobile, String address) {
this.userId = userId;
this.userName = userName;
this.password = password;
this.mobile = mobile;
this.address = address;
}
}
```
这是控制器
```
package info.xiaomo.website.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 把今天最好的表现当作明天最新的起点..~
* いま 最高の表現 として 明日最新の始発..~
* Today the best performance as tomorrow newest starter!
* Created by IntelliJ IDEA.
*
* @author: xiaomo
* @github: https://github.com/qq83387856
* @email: hupengbest@163.com
* @QQ_NO: 83387856
* @Date: 2016/11/8 10:29
* @Description: 用户实体类
* @Copyright(©) 2015 by xiaomo.
**/
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/{id}")
public Test query(@PathVariable long id) {
if (id == 1L) {
return new Test(1l);
} else {
return new Test(2L);
}
}
}
```
我运行服务器,http://localhost:8080/test/1
所以,我认为你的代码是正确的。如果你仍然得到错误,我建议你需要检查你的项目环境。
答案 1 :(得分:0)
我遇到了同样的问题,这就是我所做的纠正措施 如果您像我使用下面那样使用maven下载lombok依赖项 依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
转到本地的Maven存储库 例如对于我来说:@ C:\ Users.m2 \ repository \ org \ projectlombok \ lombok \ 1.16.20 \ lombok-1.16.20.jar
将lombok jar(如上所述)复制到STS或Eclipse的根文件夹中 我(我使用STS)复制到D:\ Public \ software_executables \ STS \ spring-tool-suite-3.9.5.RELEASE-e4.8.0-win32-x86_64 \ sts-bundle \ sts-3.9.5.RELEASE
然后从该位置打开命令提示符[您现在已复制lombok jar的位置] 并运行以下命令java -jar lombok-1.16.20.jar(使用您使用的lombok版本)
您将弹出一个弹出窗口 询问日食或STS .exe的位置,请提供正确的路径 然后点击[安装/更新]按钮
注意:在上述所有操作中,STS / Eclipse应该已经关闭
现在打开STS / Eclipse并清理您的项目 并且所有关于LOMBOK的问题都应该得到纠正
希望有帮助