2013-11-28 26 views
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); 

    } 

******************************************************************************* 
+0

是的,因为这个控制器没有生成json。尝试从这个控制器返回json。 – Jai

+0

你的updateFeedBackSeen方法存在问题,异常说它大声 –

回答

0

解决它。这个问题在控制台本身就很明显。我的不好。控制器期待一个列表映射到该方法。但我收到FeedBack [](只是数组)。我将类型改为FeedBack []作为(@RequestBody FeedBack feedback []),现在它在服务器端正常工作。但它现在返回一个解析错误文本。虽然它在后端工作正常。

相关问题