【发布时间】:2021-04-08 16:20:03
【问题描述】:
我正在尝试使用 restTemplate.postForObject 将对象发布到另一个服务,但其中一个成员变量值变为 0。但是当我尝试在 chrome 浏览器中使用 rest 客户端发送相同的发布请求时,然后所有的价值观都在发展。请帮助我在哪里做错了。
客户端代码
// Sender. Sending the seed object to bidServiceEndpoint + "seedbid".
private Bid saveSeedBid(Seed seed) {
Bid bid = new Bid();
bid.setEmail(seed.getEmail());
log.info("seed price = " + seed.getSeed_price());
bid.setNew_price(seed.getSeed_price());
bid.setSid(seed.getSid());
log.info("seed info " + seed.toString());
log.info("Saving seed bid " + bid.toString());
return restTemplate.postForObject(bidServiceEndpoint + "seedbid", seed, Bid.class);
这是打印
2021-04-08 21:08:50.168 INFO 13912 --- [nio-5003-exec-7] murali.bidder.seed.service.SeedService : Saving seed bid Bid(bid=null, bid_time=null, email=xyz@gmail.com, old_price=0, new_price=500, sid=41ee3f6e-0afd-4d26-b827-12e5687fadc2)
请注意,我正在传递电子邮件、new_price 和 sid。这里 new_price 的值为 500。
现在是服务器代码:-
@PostMapping("/seedbid")
public Bid saveSeedBid(@RequestBody Bid bid) {
log.info("Saving seed bid " + bid.toString());
return bidService.saveSeedBid(bid);
}
这是打印
2021-04-08 21:08:50.189 INFO 13040 --- [nio-5004-exec-1] m.bidder.bid.controller.BidController : Saving seed bid Bid(bid=null, bid_time=null, email=xyz@gmail.com, old_price=0, new_price=0, sid=41ee3f6e-0afd-4d26-b827-12e5687fadc2)
如果您观察到 email 和 sid 正常发送,但 new_price 为 0。
请帮助说明为什么 new_price 为零。
这里是出价pojo
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Bid {
private String bid;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss.SSS")
private Date bid_time;
private String email;
private int old_price;
private int new_price;
private String sid;
}
【问题讨论】:
-
注意 Java 命名约定。不要在变量名中使用
_。在java中使用camelCase是很常见的 -
您确定
seed.getSeed_price()返回的值不同于0? -
尝试将 Bid 包含在
HttpEntity中,并在postForObject中使用HttpEntity。 -
当然。谢谢。我将更改为使用命名约定。设置后,我正在打印 log.info("Saving seed bid " + bid.toString());此输出我粘贴在 2021-04-08 21:08:50.168 INFO 13912 --- [nio-5003-exec-7]murali.bidder.seed.service.SeedService 上方:保存种子出价 Bid(bid=null, bid_time= null, email=xyz@gmail.com, old_price=0, new_price=500, sid=41ee3f6e-0afd-4d26-b827-12e5687fadc2) 这里new_price值为500
-
2021-04-08 21:08:50.167 INFO 13912 --- [nio-5003-exec-7]murali.bidder.seed.service.SeedService : 种子价格 = 500
标签: java spring rest resttemplate