0

我在 SpringBoot 中创建了 REST API 应用程序,该应用程序具有指向相同 URL 的方法GETPOST我已经创建了 springboot 应用程序并部署在本地机器的 docker 容器中。当我尝试访问此应用程序时,我能够同时获得GETPOST方法的响应。我已将相同的应用程序部署到 Pivotal Web Services (Pivotal Cloud Foundry) 中。当我尝试访问GETPWS 中的方法时,它工作正常,但是当我尝试访问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。

我想看到POST 方法的200 OK

@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);
        }
    }
}


````
4

0 回答 0