【发布时间】:2018-03-28 11:46:13
【问题描述】:
我正在学习弹簧靴。并在使用 resttemplate 更新下面的休息服务时
RestTemplate restTemplate = new RestTemplate();
// restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
// restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
HttpHeaders httpHeaders = restTemplate.headForHeaders("http://localhost:8080/getallblade");
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setSupportedMediaTypes(Arrays.asList(MediaType.ALL));
messageConverters.add(new MappingJackson2XmlHttpMessageConverter());
messageConverters.add(converter);
restTemplate.setMessageConverters(messageConverters);
BladeView blade = new BladeView();
blade.setBladeId(id);
blade.setAppStatus(false);
blade.setOperStatus(false);
blade.setPowerStatus(powerstatus);
HttpEntity<BladeView> requestUpdate = new HttpEntity<>(blade, httpHeaders);
restTemplate.exchange("http://localhost:8080"+"/addd", HttpMethod.PUT, requestUpdate, Void.class);
我已经用 put 而不是 exchange 尝试了上述代码的多个版本,但得到了与以下相同的错误:
Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
at [Source: java.io.PushbackInputStream@696b5835; line: 1, column: 1]
org.springframework.web.client.HttpClientErrorException: 400 null
...................
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:539)
at com.rhevm.server.COTSSERVER.updatePowerStatus(COTSSERVER.java:102)
这些是我的控制器、服务和模型
@RequestMapping(value="/addd",method=RequestMethod.PUT,consumes = "application/json", produces = "application/json")
public void add(@RequestBody List<BladeView> bladeView) {
System.out.println(bladeView);
bladeViewService.add(bladeView);
}
public void add(List<BladeView> bladeView) {
baldeViewRepository.save(bladeView);
}
@Entity
@Table(name="bladeview")
public class BladeView {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer bladeId;
请您指导一下,因为我无法解决这个问题。
【问题讨论】:
标签: java hibernate spring-mvc spring-boot