我进行了REST服务迁移,现在尝试添加新项。
型号留言:
@Entity
@Table(name="message")
public class Message{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
@Column(name = "MESSAGE")
private String message;
@Column(name = "AUTHOR")
private String author;
@Column(name = "CREATED")
@Temporal(TemporalType.DATE)
private Date created;
public Message() {}
public Message(Long id, String message, String author) {
this.id = id;
this.message = message;
this.author = author;
this.created = new Date();
}
+ getters / setters
MessageController:
@RestController
public class MessageController {
@Autowired
private MessageRepository messageRepository;
@RequestMapping(
value = "/api/messages",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> addMessage(@RequestBody Message newMessage) {
return new ResponseEntity<>(messageRepository.save(newMessage), HttpStatus.CREATED);
}
}
错误:
2016-11-06 10:52:53.857警告1100-[nio-8080-exec-1] .wsmsDefaultHandlerExceptionResolver:无法读取HTTP消息:org.springframework.http.converter.HttpMessageNotReadableException:无法读取文档:无法在[来源:java.io.PushbackInputStream@6ccdce8a;中,从START_ARRAY令牌中反序列化com.sttech.springrest.model.Message实例。行:1,列:1];嵌套的异常是com.fasterxml.jackson.databind.JsonMappingException:无法从[源:java.io.PushbackInputStream@6ccdce8a;]中的START_ARRAY令牌反序列化com.sttech.springrest.model.Message实例。行:1,列:1]
通过邮递员,我在json中发送新数据并获得邮递员答复
[
{
"message": "Hello World1",
"author": "ABC"
}
]
“ exception”:“ org.springframework.http.converter.HttpMessageNotReadableException”,“ message”:“无法读取文档:无法反序列化com.sttech.springrest.model.Message实例的START_ARRAY令牌\ n在[来源: java.io.PushbackInputStream@6ccdce8a;行:1,列:1];嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:无法反序列化com.sttech.springrest.model.Message的实例,超出了START_ARRAY令牌\ n在[来源:java.io.PushbackInputStream@6ccdce8a;第1行,第1行:]
如何解决?我认为该模型没有ID。
您的服务需要一条消息。但是,您将发送一组消息(尽管它仅包含一条消息)。
所以代替:
[
{
"message": "Hello World1",
"author": "ABC"
}
]
您应该发送:
{
"message": "Hello World1",
"author": "ABC"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句