Spring boot 在SpringBoot应用程序中,GetMapping工作但PostMapping不工作
嗨,我在SpringBoot应用程序中有一个REST控制器,它有许多方法。我的GET方法工作正常,但是我的POST方法不工作,而是返回一个错误405,表示该方法是不允许的。任何想法都会有帮助;提前谢谢Spring boot 在SpringBoot应用程序中,GetMapping工作但PostMapping不工作,spring-boot,rest,web-services,Spring Boot,Rest,Web Services,嗨,我在SpringBoot应用程序中有一个REST控制器,它有许多方法。我的GET方法工作正常,但是我的POST方法不工作,而是返回一个错误405,表示该方法是不允许的。任何想法都会有帮助;提前谢谢 @GetMapping("orders") public List<OrderDto> getOrders() { List<OrderDto> orderDtos = new ArrayList<>();
@GetMapping("orders")
public List<OrderDto> getOrders() {
List<OrderDto> orderDtos = new ArrayList<>();
// get all the orders using the getOrders method in the OrderService class
List<Order> orders = orderService.getOrders();
// convert each of the returned orders into orderDto
orders.forEach(o->{
orderDtos.add(OrderDto.from(o));
});
return orderDtos;
}
@GetMapping("lineitems")
public List<OrderLineItemDto> getOrderLineItems(){
List<OrderLineItemDto> orderLineItemDtos = new ArrayList<>();
// get line items using the getOrderLineItems service
List<OrderLineItem> orderLineItems = orderLineItemService.getOrderLineItems();
// convert each of the returned order line items into an orderLineItemDto so that the DTO is the one that gets returned to the client
orderLineItems.forEach(ol->{
orderLineItemDtos.add(OrderLineItemDto.from(ol));
});
// return the list of lineItemDtos to the calling client.
return orderLineItemDtos;
}
@GetMapping("lineitems/{id}")
public OrderLineItem getOrderLineItem(@PathVariable Long id) {
return orderLineItemService.getOrderLineItem(id);
}
@PostMapping("order/add")
// @RequestMapping(value = "order",
// consumes = "application/json",
// method = RequestMethod.POST)
public void addOrder(@RequestBody OrderDto orderDto) {
Order order = new Order();
// convert the orderDto into order
order = Order.from(orderDto);
// use the order in the order creation service
orderService.addOrder(order);
}
@GetMapping(“订单”)
公共列表getOrders(){
List orderDtos=new ArrayList();
//使用OrderService类中的getOrders方法获取所有订单
List orders=orderService.getOrders();
//将每个返回的订单转换为orderDto
订单。forEach(o->{
orderDtos.add(OrderDto.from(o));
});
返回订单DTO;
}
@GetMapping(“行项目”)
公共列表getOrderLineItems(){
List orderLineItemDtos=new ArrayList();
//使用getOrderLineItems服务获取行项目
List orderLineItems=orderLineItemService.getOrderLineItems();
//将每个返回的订单行项目转换为orderLineItemDto,以便该DTO是返回给客户机的
orderLineItems.forEach(ol->{
添加(OrderLineItemDto.from(ol));
});
//将LineItemdTo列表返回给调用客户端。
返回orderLineItemDtos;
}
@GetMapping(“lineitems/{id}”)
public OrderLineItem getOrderLineItem(@PathVariable Long id){
返回orderLineItemService.getOrderLineItem(id);
}
@邮戳(“订单/添加”)
//@RequestMapping(value=“order”,
//consumes=“application/json”,
//method=RequestMethod.POST)
public void addOrder(@RequestBody OrderDto OrderDto){
订单=新订单();
//将orderDto转换为order
订单=订单.from(orderDto);
//在订单创建服务中使用订单
orderService.addOrder(order);
}
查看邮递员的回复,似乎请求被解释为get,即使选择了post。你能给我们看一下你要添加的标题吗?请尝试使用Curl执行请求,谢谢您的帮助。事实证明,问题在于本文中描述的安全配置问题