Http jhipster错误400错误请求,节省$resource

Http jhipster错误400错误请求,节省$resource,http,post,resources,jhipster,Http,Post,Resources,Jhipster,我已经用yo Jhipster创建了一个Jhipster应用程序,并用yo Jhipster:entity hikelist创建了一个实体hikelist 当我试图使用jhipster生成的服务et控制器保存我的实体时,我收到了一个错误的请求400。我找不到这个错误的原因。不调用java资源。有没有办法在我的http请求中获取有关此问题原因的更多信息 我的后端资源: @RequestMapping(value = "/rest/hikelists", method = RequestMe

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

当我试图使用jhipster生成的服务et控制器保存我的实体时,我收到了一个错误的请求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或其他值,而是希望您的DB能够管理。我只是面对同样的问题,并找到了一个好的、干净的解决方法,根本不改变角度:

  • 向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;
    }
    

  • 今晚我自己也在处理同样的问题。。。希望明天我能给你一个答案。我面临着同样的错误@user2495290您解决了吗?谢谢,好吧,在我的DTO对象中添加一个空构造函数就解决了这个问题。
    public static UserDTO fromJsonToUserDTO(String json) {
        return new JSONDeserializer<UserDTO>()
        .use(null, UserDTO.class).deserialize(json);
    }
    
    @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());
    }