Я пытаюсь избежать целой кучи ручных проверок для отладки моего кода, даже при том, что ошибка, скорее всего, окажется опечаткой или чем-то глупым. Я делаю ajax () вызов действия Struts 2, используя jQuery, и выполнение останавливается. На уровне Javascript я получаю очень описательную ошибку 500, указывающую: «Понятия не имею, вы сами разработчик». Итак, что я делаю на уровне действий в Struts2 - это помещаю строку log.info после каждой команды. Вот что у меня есть для демонстрационных целей:
log.info("Trying to process " + entry.trim());
int noteIndex = Integer.valueOf(entry.trim());
log.info("Note index is " + noteIndex + " in a list of size " + iss.getNotes().size());
Integer noteId = iss.getNoteByIndex(noteIndex).getIssueNoteId();
log.info("Noteid is " + noteId);
service.deleteNote(noteId);
log.info("Note " + noteId + " has been deleted");
Мои логи кота дают мне:
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:54) - Entering delete note with 2,3
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:61) - Trying to process 2
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:63) - Note index is 2 in a list of size 5
2011-07-08 14:26:54,135 INFO [http-8080-3] (IssueNoteAction.java:65) - Noteid is 80686
Это указывает на то, что проблема заключается в обращении к моей службе Struts 2, deleteNote, которая фактически выполняет мягкое удаление (оператор обновления) через myBatis. Тем не менее, очевидная ошибка молчит. Обычно, когда я делаю ошибку с myBatis, myBatis дает мне знать (и журналы часто очень полезны), и я пытаюсь исправить свою ошибку. У меня myBatis установлен на уровне INFO.
Так что же заткнуло Tomcat? Не только для этого случая, но и для будущих вызовов ajax (), где мне нужно отлаживать, как мне получить больше информации от Tomcat / Log4J?