На самом деле у меня есть приложение JavaScript (jQuery), которое отправляет запрос в функцию Java, которая должна отправлять данные (в случае успеха) в мою функцию ajax.
В случае успеха я продолжаю свое заявление; в случае ошибки я прекращаю свои процедуры и отображаю сообщение об ошибке пользователю.
Но когда Java-коду требуется более 5 минут для отправки ответа на мой Ajax-вызов, этот (ajax-код) больше не (работает / отвечает / идет /) не получает никакого ответа ...
Я попытался установить ограничение времени ожидания до 600000 ms
(то есть 10 минут), но у меня все еще возникает та же проблема (и у меня нет сообщений об ошибках или выходных данных, которые могли бы мне помочь).
Так что, если у кого-то есть представление об источнике этой проблемы, я был бы благодарен.
Вот фрагмент кода, если он может сделать его более понятным:
JSP
$(document).ready(function() {
/* performing some layout changes */
//
preValidationDisplay();
}
function preValidationDisplay() {
/* performing some layout changes */
setTimeout("getValidationResult()", 500);
}
function checkReadLogFile() {
$.ajax({
url: logFileUrl,
cache: false,
success: function(result)
{
$("#progressBarToResize").width(
'' + parseFloat(result.trim()) + '%' );
}
});
}
function getValidationResult()
{
var timer = setInterval("checkReadLogFile()", 1000);
$.ajax({
url: '<s:url value="doValidation"/>',
type: "GET",
cache: false,
dataType: "json",
async: true,
//timeout : 600000,
success: function(result, status)
{
// Do something
},
error: function(jqXHR, status, errorStr){
// Do something
}
});
}
Java
@RequestMapping(value = "/doValidation", method = RequestMethod.GET)
public String processValidationResults(HttpServletRequest request, HttpServletResponse response,
@RequestHeader("Connection") String conn) {
ValidationResult validationResult = null;
JSONObject resultJson = new JSONObject();
HttpSession session = request.getSession();
JSONObject progressMap = (JSONObject) session.getAttribute("progressMap");
String uploadedFilePath = progressMap.getString("filePath");
String realMimeType = progressMap.getString("realMimeType");
long fileSize = progressMap.getLong("fileSize");
String ctxPath = request.getContextPath();
// INVOKE the VALIDATION ENGINE
try {
validationResult = validationEngineService.getValidationResult(uploadedFilePath, ctxPath);
resultJson = JSONObject.fromObject(validationResult);
} catch (Exception e) {
validationResult = null;
resultJson.put("errorMsg", e.toString());
}
try {
response.getWriter().print(resultJson);
response.flushBuffer();
} catch (Exception e) {
}
return null;
}