@POST Method REST - Код состояния: 405 / Метод не разрешен - PullRequest
0 голосов
/ 05 марта 2020

@ Метод PEST REST - Код состояния: 405 / Метод не разрешен

Я вызываю метод REST из JSP, что приводит к ошибке Status Code: 405 / Method Not Allowed

В чем может быть причина и как можно решить проблему? Сервер приложений Weblogi c 12.2.1.4

@POST
public Object saveProduct(@FormParam("productId") String productId,
        @FormParam("productCategoryId") @Context HttpServletRequest request,
        @Context HttpHeaders headers) {

    String returnJSON = null;

    List<ProductList> productPersistList = new ArrayList<ProductList>();
    ProductPersist productPersist = new ProductPersist();
    productPersistList.add(productPersist);
    log.info("productId  " + productId);

    try {
        for (ProductList persistItems: productPersistList) {
            persistItems.setProductId(productId);

        }
        productPersistDAO.persistData(productPersistList);
        log.info("persist data  ");

        map.put("success", "true");
        map.put("msg", "Done");

        returnJSON = JSONObject.fromObject(map).toString();

    } catch (Exception e) {
        log.error("error from persistData " + e);
        e.printStackTrace();
    } finally {
        map.clear();
    }

    return returnJSON;
}

Обновление 1

Ниже приведен фрагмент кода, где вызывается REST API, если он определен в. js файле

function saveProduct(param){
            $('#fmEdit').form('submit',{
                method: 'POST',
                contentType : "application/x-www-form-urlencoded",
                url: url,
                onSubmit: function(){
                    return $(this).form('validate');
                },
                success: function(result){
                    var result = eval('('+result+')');
                    if (result.errorMsg){
                        $.messager.show({
                            title: 'Error',
                            msg: result.errorMsg
                        });
                    } else {
                        successMessage();
                        $('#dg').datagrid('reload');
                        if(param=='saveclose' ){
                        $('#dlg').dialog('close');
                        }
                        else if(param == 'save'){
                        $('#fmEdit').form('clear');
                        }
                    }
                }
            });
        }

1 Ответ

0 голосов
/ 05 марта 2020

вы пытались установить Расходы (MediaType.APPLICATION_FORM_URLENCODED) в методе службы REST?

...