【发布时间】:2020-06-17 17:59:21
【问题描述】:
@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
下面是调用 REST API 的代码 sn-p,它是在 .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');
}
}
}
});
}
【问题讨论】:
-
您能否在实际调用休息时添加代码?
-
@Nicktar 我已经用代码 sn-p 更新了帖子
标签: java json rest weblogic12c