@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');
}
}
}
});
}
答案 0 :(得分:0)
您是否尝试在REST服务方法中设置Consumes(MediaType.APPLICATION_FORM_URLENCODED)?