Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将新用户添加到数据库-Spring启动:400 BadRequest_Java_Spring - Fatal编程技术网

Java 无法将新用户添加到数据库-Spring启动:400 BadRequest

Java 无法将新用户添加到数据库-Spring启动:400 BadRequest,java,spring,Java,Spring,我的申请有问题。我创建了两个服务,其中一个(db connector)连接到数据库并允许一些操作,浏览器使用的第二个(webApp)连接到第一个 当我尝试使用Postman创建用户时,它是有效的。所以bug必须在下面的方法中 @PostMapping("/createUser") public String createUser(@ModelAttribute("createQuery") CreateQuery createQuery) { Ht

我的申请有问题。我创建了两个服务,其中一个(db connector)连接到数据库并允许一些操作,浏览器使用的第二个(webApp)连接到第一个

当我尝试使用Postman创建用户时,它是有效的。所以bug必须在下面的方法中

@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 ?]