Spring Cloud 微服务之间使用RestTemplate.postForEntity,服务端不的@RequestBody 不起作用?

鲜卑大帝 2019-03-07 02:51:21
作为客户端的微服务发送一个javaBean到服务端的微服务

客户端代码:
String ue_url = "http://localhost:8990/ue/add";

String jsonString = JSON.toJSONString(ueEngineeringData, SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteDateUseDateFormat);

HttpEntity ue_entity = new HttpEntity(jsonString,headers);
//String jsonString = JSON.toJSONString(ueEngineeringData);
log.info("javaBean->json结果:" + ue_entity);
ResponseEntity<HashMap> ret = restTemplate_local.postForEntity(ue_url,ue_entity,HashMap.class);

调试结果:
2019-03-07 14:32:13.126 INFO 3020 --- [ Timer-0] c.p.n.task.EngineeringTimerTask : javaBean->json结果:<{
"id":0,
"latitudeXy":"20.0",
"longitudeXy":"20.0",
"ptEpc230UeCellLogicCellId":"",
"ptEpc230UeMacroEnbId":"",
"ueImsi":"34703030015800"
},{Content-Type=[application/json]}>
2019-03-07 14:32:13.131 INFO 3020 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)

服务端的代码:
@RequestMapping(value = "/add",method = RequestMethod.POST)
@ResponseBody
public HashMap<String, Object> addUe(@RequestBody UeEngineeringData ue) {
log.info("Add UE");
log.info("ue.imis:"+ ue.getUeImis());
log.info("UeController-add-ue.Longitude"+ue.getLongitude());
log.info("UeController-add:" + ue.toString());
return ueEngineeringDataService.addUe(ue);
}

控制台输出:
2019-03-07 14:32:13.139 INFO 3003 --- [io-8990-exec-10] c.p.n.controller.UeController : ue.imis:null
2019-03-07 14:32:13.139 INFO 3003 --- [io-8990-exec-10] c.p.n.controller.UeController : UeController-add-ue.Longitudenull
2019-03-07 14:32:13.140 INFO 3003 --- [io-8990-exec-10] c.p.n.controller.UeController : UeController-add:com.potevio.networkmonitoringdatabasecreatetables.domain.UeEngineeringData@4a2cd158
2019-03-07 14:32:13.140 INFO 3003 --- [io-8990-exec-10] c.p.n.service.UeEngineeringDataService : UeEngineeringData:imis:null
Hibernate: select ueengineer0_.id as id1_0_, ueengineer0_.latitude as latitude2_0_, ueengineer0_.longitude as longitud3_0_, ueengineer0_.pt_epc230ue_cell_logic_cell_id as pt_epc4_0_, ueengineer0_.pt_epc230ue_macro_enb_id as pt_epc5_0_, ueengineer0_.ue_imis as ue_imis6_0_ from ue_engineering_data ueengineer0_ where ueengineer0_.ue_imis is null

明明已经用阿里的fastJson转成Json发送过去了,为什么@RequestBody UeEngineeringData ue) 不起作用? 它里边的内容都是空的!

...全文
1274 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

10,607

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧