[英]Unrecognized token 'message': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
[英]Unrecognized token 'Payment': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
我正在开发两个RestTemplate
引导微服务(订单和支付)我收到上述错误:
这是我的代码
服务
public TransactionResponse saveOrder(TransactionRequest request) {
String responseMessage = "";
Order order = request.getOrder();
Payment payment = request.getPayment();
payment.setOrderId(order.getId());
payment.setAmount(order.getPrice());
// response message
System.out.println(order);
// rest api call to payment service
Payment paymentResponse =
restTemplate.postForObject("http://localhost:8082/api/payment", payment, Payment.class);
responseMessage = paymentResponse.getPaymentStatus().equals("success")?
"payment processed successfully": "payment failed ";
orderRepository.save(order);
System.out.println(paymentResponse);
return new TransactionResponse(order , paymentResponse.getTransactionId() , paymentResponse.getAmount(), responseMessage);
}
Controller
@PostMapping
public TransactionResponse bookOrder(@RequestBody TransactionRequest transactionRequest) {
return orderService.saveOrder(transactionRequest);
}
事务请求 model
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TransactionRequest {
private Order order;
private Payment payment;
}
付款 model
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payment {
private int paymentId;
private String paymentStatus;
private String transactionId;
private double amount;
private int orderId;
}
图片
哦,我遇到了问题,因为我正在执行 rest api 调用支付服务,支付服务的发布方法返回字符串而不是支付 object。
这是我之前的后付款方式:
@PostMapping
public String orderPayment(@RequestBody Payment payment) {
paymentService.doPayment(payment);
return "Payment done";
}
这就是它应该是的样子
@PostMapping
public Payment orderPayment(@RequestBody Payment payment) {
return paymentService.doPayment(payment);
}
注意:返回类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.