Похоже, у вас проблема с потоками.
По умолчанию веб-движки Java (скажем, tomcat) обрабатывают запросы параллельно.Это означает, что когда есть запрос к серверу, сервер принимает его, в то время как другие запросы выполняются (также с учетом лимита / пула соединений и невыполненных заданий)
Проблема связана с упомянутым вами методом А.Я думаю, что что-то используется в глобальной области видимости, которое совместно используется со всеми запросами / вызовами потоков.
Рассматривая следующий пример:
//the _c is shrable between threads
//this is not thread-safe
int _c=0;
public int method_a(){
return _c++;//not thread safe!!!
}
//is called for each http calls
//request and response are associated to this call
//using them are safe
public void doGet(request,response){
int val=method_a();
//printing the val...
}
Как и в примере выше, даже если вы вызываете 100 вызовов http,это возможно, когда второй вызванный запрос ответил значением 80 (ожидаемое значение 1), а последний - значением 8 (ожидаемое значение 99)
Я думаю, что бизнес, который вы делаете с упомянутым вами методом A, не является поточно-ориентированным.
Вы можете пометить метод method_a синхронизированным , чтобы подтвердить его.Но вместо того, чтобы запечатывать параллельную среду, вы можете найти правильное решение для ее исправления.
Вы можете поделиться кодом своего сервера, чтобы мы могли находить проблемы лучше.