Я создал приложение REST API в SpringBoot, которое имеет метод GET
и POST
, указывающий на один и тот же URL.Я создал приложение Springboot и развернул его в Docker-контейнере на моей локальной машине.Когда я пытаюсь получить доступ к этому приложению, я могу получить ответ для обоих методов GET
и POST
.Я развернул это же приложение в Pivotal Web Services (Pivotal Cloud Foundry).Когда я пытаюсь получить доступ к методу GET
в PWS, он работает нормально, но когда я пытаюсь получить доступ к методу POST
, я получаю сообщение об ошибке.
`"error": "Method Not Allowed",
"message": "Request method 'POST' not supported",`
Если я смотрю на ошибку в журнале PWS,Я мог видеть следующее..w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
Я пытался изменить код Springboot для включения в метод различных параметров, но ни один из них не работает в PWS.
Я хотел бы видеть 200 OK для метода POST.
@RestController
@RequestMapping("/skus")
public class SKUController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
//==============================================================
@Autowired
SKUService skuService; //Service which will do all data retrieval/manipulation work
// -------------------Retrieve All SKUS---------------------------------------------
@RequestMapping(value = "/", method = RequestMethod.GET)
public ResponseEntity<List<SKU>> listAllSKUS() {
List<SKU> skus = skuService.listAllSKUS();
if (skus.isEmpty()) {
return new ResponseEntity(HttpStatus.NO_CONTENT);
// You many decide to return HttpStatus.NOT_FOUND
}
return new ResponseEntity<List<SKU>>(skus, HttpStatus.OK);
}
@RequestMapping(value = "/", method = RequestMethod.POST)
public ResponseEntity<?> addSKU(@RequestBody SKU sku) {
try {
skuService.addSKU(sku);
return new ResponseEntity<SKU>(sku, HttpStatus.OK);
}catch(Exception e) {
return new ResponseEntity("SKU cannot be created", HttpStatus.BAD_REQUEST);
}
}
}
````