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

问题描述 投票:0回答:1

@@ POST方法REST-状态码: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');
                        }
                    }
                }
            });
        }
java json rest weblogic12c
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.