@POST方法REST-状态码:405 /不允许的方法

时间:2020-03-05 06:51:44

标签: java json rest weblogic12c

@POST方法恢复-状态码:405 /不允许使用方法

我正在从JSP调用REST方法,这会导致错误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

下面是在.js文件中定义REST API的代码片段

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 :(得分:0)

您是否尝试在REST服务方法中设置Consumes(MediaType.APPLICATION_FORM_URLENCODED)?