REST-метод @POST — код состояния: 405/метод не разрешен

REST-метод @POST — код состояния: 405/метод не разрешен

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

В чем может быть причина и как решить проблему? Сервер приложений Weblogic 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');
                        }
                    }
                }
            });
        }

person Chks    schedule 05.03.2020    source источник
comment
Не могли бы вы добавить код, в котором вы делаете фактический вызов отдыха?   -  person Nicktar    schedule 05.03.2020
comment
@Nicktar Я обновил пост фрагментом кода.   -  person Chks    schedule 05.03.2020


Ответы (1)


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

person Azimuts    schedule 05.03.2020
comment
Вы хотите сказать, что вместо @POST должно быть @Consumes(MediaType.APPLICATION_FORM_URLENCODED)? - person Chks; 05.03.2020
comment
...и то, и другое лучше. В этом случае полезно (чтобы избежать основных проблем..) выполнить приветственную службу, проверить uris и т.д.. @GET @Path(/hi) return Hi, Fitipaladi!; } - person Azimuts; 05.03.2020