Java 无法将新用户添加到数据库-Spring启动:400 BadRequest
我的申请有问题。我创建了两个服务,其中一个(db connector)连接到数据库并允许一些操作,浏览器使用的第二个(webApp)连接到第一个 当我尝试使用Postman创建用户时,它是有效的。所以bug必须在下面的方法中Java 无法将新用户添加到数据库-Spring启动:400 BadRequest,java,spring,Java,Spring,我的申请有问题。我创建了两个服务,其中一个(db connector)连接到数据库并允许一些操作,浏览器使用的第二个(webApp)连接到第一个 当我尝试使用Postman创建用户时,它是有效的。所以bug必须在下面的方法中 @PostMapping("/createUser") public String createUser(@ModelAttribute("createQuery") CreateQuery createQuery) { Ht
@PostMapping("/createUser")
public String createUser(@ModelAttribute("createQuery") CreateQuery createQuery) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
User user = new User();
user.setLogin(createQuery.getLogin());
user.setPassword(createQuery.getPassword());
user.setFirstName(createQuery.getFirstName());
user.setLastName(createQuery.getLastName());
HttpEntity<User> request = new HttpEntity<>(user, headers);
restTemplate.postForEntity("http://localhost:8080/createUser", request, User.class);
return "createUser";
}
我试过这样做:
HttpEntity<User> request = new HttpEntity<>(new User(), headers);
restTemplate.postForEntity("http://localhost:8080/createUser?userLogin=" + createQuery.getLogin()
+ "&password=" + createQuery.getPassword() + "&firstName=" + createQuery.getFirstName()
+ "&lastName=" + createQuery.getLastName(), request, User.class);
HttpEntity请求=新的HttpEntity(new User(),headers);
restTemplate.postForEntity(“http://localhost:8080/createUser?userLogin=“+createQuery.getLogin()
+“&password=“+createQuery.getPassword()+”&firstName=“+createQuery.getFirstName()
+“&lastName=“+createQuery.getLastName(),请求,用户.class);
试图将postForEntity更改为postForObject,但仍然无效。我想不出是怎么回事
干杯:)[
]
第一个服务的响应旨在连接数据库您是否使用
restemplate
访问同一服务器中的端点?你为什么要那样做?您只需调用服务方法即可。您创建了一个post请求,但传递了get之类的参数?一个有8080端口,另一个有8081端口。如果这是您的意思,请显示正在工作的postman请求。这样我们就可以将它与不起作用的请求进行比较。createUser?userLogin=xx这是一个get参数not post
HttpEntity<User> request = new HttpEntity<>(new User(), headers);
restTemplate.postForEntity("http://localhost:8080/createUser?userLogin=" + createQuery.getLogin()
+ "&password=" + createQuery.getPassword() + "&firstName=" + createQuery.getFirstName()
+ "&lastName=" + createQuery.getLastName(), request, User.class);
2020-09-10 17:39:34.284 DEBUG 2116 --- [nio-8080-exec-1] o.s.jdbc.core.JdbcTemplate : Executing SQL update and returning generated keys
2020-09-10 17:39:34.285 DEBUG 2116 --- [nio-8080-exec-1] o.s.jdbc.core.JdbcTemplate : Executing prepared SQL statement [INSERT INTO EXAMPLE_SCHEMA.USERS(login, password, first_name, last_name) values(?, ?, ?, ?)]
2020-09-10 17:39:50.421 DEBUG 2116 --- [nio-8080-exec-2] o.s.jdbc.core.JdbcTemplate : Executing prepared SQL query
2020-09-10 17:39:50.421 DEBUG 2116 --- [nio-8080-exec-2] o.s.jdbc.core.JdbcTemplate : Executing prepared SQL statement [SELECT * FROM EXAMPLE_SCHEMA.USERS WHERE login LIKE ?]
2020-09-10 17:39:52.983 DEBUG 2116 --- [nio-8080-exec-3] o.s.jdbc.core.JdbcTemplate : Executing prepared SQL query
2020-09-10 17:39:52.983 DEBUG 2116 --- [nio-8080-exec-3] o.s.jdbc.core.JdbcTemplate : Executing prepared SQL statement [SELECT * FROM EXAMPLE_SCHEMA.USERS WHERE login LIKE ?]