【发布时间】:2021-12-31 21:43:54
【问题描述】:
我正在使用 H2 数据库开发两个 Spring Boot 微服务(订单和支付)不在订单服务中,我收到上述错误:
这是我的代码
服务
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);
}
控制器
@PostMapping
public TransactionResponse bookOrder(@RequestBody TransactionRequest transactionRequest) {
return orderService.saveOrder(transactionRequest);
}
事务请求模型
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TransactionRequest {
private Order order;
private Payment payment;
}
支付模式
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Payment {
private int paymentId;
private String paymentStatus;
private String transactionId;
private double amount;
private int orderId;
}
图片
【问题讨论】:
-
您的请求应该是对象数组吗? [..] 而不是 {..} ?
-
分享您的 TransactionRequest 模型代码
-
您能否在您的问题中添加
Payment代码?此外,邮递员显示http://localhost:8082/api/order和您的代码http://localhost:8082/api/payment。请澄清你的问题。谢谢! -
@mystery 我已将 transactionRequest 模型添加到问题中
-
@JoãoDias 让我澄清一下这里的端点,订单服务在端口:8081 上运行,localhost:8081/api/order 是负责预订订单的主要 api,然后它调用支付 api,即在端口上运行:8082,localhost:8082/api/payment 注意:我已将付款代码添加到问题中
标签: java spring jackson postman h2