gpt4 book ai didi

http - jhipster 错误 400 BAD REQUEST with $resource save

转载 作者:可可西里 更新时间:2023-11-01 17:10:07 27 4
gpt4 key购买 nike

我已经使用 yo jhipster 创建了一个 Jhipster 应用程序,并使用 yo jhipster:entity hikelist 创建了一个实体 hikelist。

当我尝试使用 jhipster 生成的服务和 Controller 保存我的实体时,我收到错误请求 400。我找不到此错误的原因。未调用 java 资源。有没有办法在我的 http 请求中获取有关此问题原因的更多信息?

我的后端资源:

@RequestMapping(value = "/rest/hikelists",
method = RequestMethod.POST,
produces = "application/json")
@Timed
public void create(@RequestBody HikelistDTO hikelist) {
log.debug("REST request to save Hikelist : {}", hikelist);
hikelistRepository.save(hikelist);
}

客户端http调用的创建函数:

$scope.create = function () {
Hikelist.save($scope.hikelist,
function () {
$scope.hikelists = Hikelist.query();
$('#saveHikelistModal').modal('hide');
$scope.clear();
});
};

我错过了什么吗?还有什么要配置的吗?

谢谢。

最佳答案

问题是您的 JSON 没有正确序列化到您的 DTO 中,很可能是因为 ID 或您不想手动触摸的其他一些值,而是希望您的数据库进行管理。我刚刚遇到了同样的问题,并找到了一个很好的、干净的解决方法,根本没有改变 Angular:

  1. 向您的 DTO 添加两个新方法,以便它可以从 JSON 字符串或 null 实例化:

    public UserDTO(String firstName, String lastName, String email, Map<String, Boolean> roles) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.email = email;
    this.roles = roles;
    }

    public static UserDTO fromJsonToUserDTO(String json) {
    return new JSONDeserializer<UserDTO>()
    .use(null, UserDTO.class).deserialize(json);
    }
  2. 更新您的服务以接受 JSON 结构而不是直接 DTO,然后仅使用您需要的字段转换为内联 DTO。

    @RequestMapping(value = "/rest/account",
    method = RequestMethod.POST,
    produces = "application/json")
    @Timed
    public void saveAccountFromJSON(@RequestBody String json) throws IOException {
    UserDTO userDTO = UserDTO.fromJsonToUserDTO(json);
    userService.updateUserInformation(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail());
    }

关于http - jhipster 错误 400 BAD REQUEST with $resource save,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com