У меня очень странное поведение в классе, и я точно не знаю, что происходит.
1) У меня есть JSP, который отправляет запрос сервлету с AJAX
2) Сервлет обрабатывает этот запрос следующим образом:
- Он создает отражение класса, а затем вызывает метод (который предоставляется в качестве параметра из JSP), а затем выводит результат метода обратно в Ajax.
Итак, вот исходная проблема, а затем частичное решение, которое я придумала:
Вызов метода выполнялся несколько раз, но я не знаю почему. JSP-Ajax только называет его ОДИН РАЗ (проверенный много раз), но сервлет был похож на «перезагрузку себя» и вызов метода несколько раз, таким образом вызывая ошибки в процессе. Поскольку я не мог найти, что происходит с сервлетом, я синхронизировал «отраженный» метод, поэтому независимо от того, сколько раз он был запрошен, один запрос будет завершен, а затем другой, и так далее. Я поместил пару сообщений в вывод, записывая, когда к методу обращались и когда он закончил работу.
Но ... сообщение, которое сигнализирует о том, что к нему обращались, пишется несколько раз до выдачи сообщения о завершении ... поэтому я не понимаю, может быть, синхронизация не работает с отражением? Чего мне не хватает, почему к методу обращаются несколько раз до его завершения? Просто не понимаю. Вы можете мне помочь?
Кроме того, у вас есть какие-нибудь идеи по поводу оригинальной проблемы (сервлет, такой как "перезагрузка")? В этой задаче я думаю, что, возможно, отправляется заголовок, который заставляет сервлет перезагрузиться, но точно не знаю.
EDIT:
На самом деле я делаю пример. Это мой код сервлета:
Class clase = Class.forName("com.cargaporinterfase.CargaPorInterfase_"+cd_matriz);
Object obj = clase.newInstance();
Method met = clase.getDeclaredMethod(metodo, new Class[]{String.class, String.class});
и вызываемый метод:
public synchronized String procesar(String url,String nu_spid) throws CargaPorInterfaseException{
//... more processing
}