0
successs(userSurpriseResponse) { // success method of another ajax call
var updateFeedbackSeenURL = "/" + contextName + "/service/updateseenfeedbacks/";
var responseForSurprise = JSON.stringify(userSurpriseResponse);
var surpriseResponse = JSON.parse(responseForSurprise);
var feedback = surpriseResponse.feedback
$.ajax({
header: "Accept: application/json",
url: updateFeedbackSeenURL,
type: 'PUT',
crossDomain: false,
async: false,
cache: false,
contentType: "application/json",
data:JSON.stringify(feedback),
dataType: 'json',
success: function() {
alert("updated seenfedback");
},
error: function(xhr, ErrorText, errorThrown) {
alert("failed inside seenfedback");
return false;
}
});
}
这里,userSurpriseResponse
从服务器端实际上是Surprise
类的对象。 Surprise类有一个属性,称为feedback
。其实是一个ArrayList<FeedBack>
。我试图将整个数组列表发送回服务器,以便根据场景进行一些处理。当我将来电,我得到的Apache Tomcat服务器内部Errror(500 (Internal Server Error)
)与以下日志AJAX PUT调用失败与内部服务器错误
*******************************************************************************************
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.tcs.teg.msgame.core.domain.FeedBack
at com.tcs.teg.msgame.server.dao.FeedBackDAOImpl.updateSeenFeedbacks(FeedBackDAOImpl.java:123)
at com.tcs.teg.msgame.server.service.SurpriseBoxServiceImpl.updateSeenFeedbacks(SurpriseBoxServiceImpl.java:129)
at com.tcs.teg.msgame.server.controller.SurpriseBoxController.updateSeenFeedbacks(SurpriseBoxController.java:40)
*******************************************************************************************
从Ajax调用请求映射由SurpriseBoxController.java如下处理
*******************************************************************************************
from line no:40
@RequestMapping(value = "/updatefeedbackseen/", method = RequestMethod.PUT, produces = "application/json")
@ResponseBody
void updateFeedBackSeen(@RequestBody List<FeedBack> feedback) {
feedBackService.updateFeedBackSeen(feedback);
}
*******************************************************************************
是的,因为这个控制器没有生成json。尝试从这个控制器返回json。 – Jai
你的updateFeedBackSeen方法存在问题,异常说它大声 –