Java 400(错误请求):带有对象数组的Json对象
我已经用,Java 400(错误请求):带有对象数组的Json对象,java,angularjs,json,spring,hibernate,Java,Angularjs,Json,Spring,Hibernate,我已经用,java、spring、hibernate和angular-js在核心构建了一个应用程序。而与之相反的是com.fasterxml.jacksonjson解析的注释。应用程序工作正常,即当我向我的控制器发送保存事件对象的调用时,我的服务器仅在该对象具有另一个对象(即艺术家)的空数组时才协助它。否则,如果已发送对象中填充了对象数组,则服务器会抛出错误请求错误,但日志中不会出现异常 事件类 @SuppressWarnings("serial") public class Event imp
java
、spring
、hibernate
和angular-js
在核心构建了一个应用程序。而与之相反的是com.fasterxml.jackson
json解析的注释。应用程序工作正常,即当我向我的控制器发送保存事件对象的调用时,我的服务器仅在该对象具有另一个对象(即艺术家)的空数组时才协助它。否则,如果已发送对象中填充了对象数组,则服务器会抛出错误请求错误,但日志中不会出现异常
事件类
@SuppressWarnings("serial")
public class Event implements Serializable {
@JsonView(Views.Public.class)
private int id;
@JsonView(Views.Public.class)
private String title;
@JsonView(Views.Public.class)
private String type;
@JsonView(Views.Public.class)
private String dateTime;
@JsonView(Views.Public.class)
private String status;
@JsonView(Views.Public.class)
private String logo;
@JsonView(Views.Public.class)
private String videoThumbnail;
@JsonView(Views.Public.class)
private String detail;
@JsonView(Views.Public.class)
private Artists[] artists;
@JsonView(Views.Public.class)
private String region;
@JsonView(Views.Public.class)
private String location;
@JsonView(Views.Public.class)
private String adUrl;
@JsonView(Views.Public.class)
private String videoUrl;
@JsonView(Views.Public.class)
private String interstitialUr;
@JsonView(Views.Public.class)
private String prerollUr;
@JsonView(Views.Public.class)
private String mediaType;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the title
*/
...
@SuppressWarnings("serial")
public class Artists implements Serializable{
@JsonView(Views.Public.class)
private int id;
@JsonView(Views.Public.class)
private String title;
@JsonView(Views.Public.class)
private String image;
@JsonView(Views.Public.class)
private String detail;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the title
*/
...
艺术家类
@SuppressWarnings("serial")
public class Event implements Serializable {
@JsonView(Views.Public.class)
private int id;
@JsonView(Views.Public.class)
private String title;
@JsonView(Views.Public.class)
private String type;
@JsonView(Views.Public.class)
private String dateTime;
@JsonView(Views.Public.class)
private String status;
@JsonView(Views.Public.class)
private String logo;
@JsonView(Views.Public.class)
private String videoThumbnail;
@JsonView(Views.Public.class)
private String detail;
@JsonView(Views.Public.class)
private Artists[] artists;
@JsonView(Views.Public.class)
private String region;
@JsonView(Views.Public.class)
private String location;
@JsonView(Views.Public.class)
private String adUrl;
@JsonView(Views.Public.class)
private String videoUrl;
@JsonView(Views.Public.class)
private String interstitialUr;
@JsonView(Views.Public.class)
private String prerollUr;
@JsonView(Views.Public.class)
private String mediaType;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the title
*/
...
@SuppressWarnings("serial")
public class Artists implements Serializable{
@JsonView(Views.Public.class)
private int id;
@JsonView(Views.Public.class)
private String title;
@JsonView(Views.Public.class)
private String image;
@JsonView(Views.Public.class)
private String detail;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the title
*/
...
控制器方法
@JsonView(Views.Public.class)
@RequestMapping(value = "save/", method = RequestMethod.POST)
public ResponseEntity<Event> saveEvent(@RequestBody Event event) {
try{
Event d_event = event;
com.ceelive.dao.model.Event m_event = beanUtil.copyEventBeanDomainToModel(d_event);
eventService.save(m_event);
return new ResponseEntity<Event>(HttpStatus.OK);
} catch(Exception exception){
exception.printStackTrace();
return new ResponseEntity<Event>(HttpStatus.REQUEST_TIMEOUT);
}
}
异常的完整堆栈跟踪是什么?请注意,JSON Artister对象有一个Java类没有的事件数组。@JB Nizet:如果服务器端的日志中有任何异常或异常,我肯定会根据它共享或尝试解决。虽然日志是完全清楚的。@Jb Nizet:我编辑了我的答案。我没有注意到json中的事件数组。我已经在java类中添加了事件数组,现在一切正常。非常感谢各位同事的支持。祝福你。