Судя по трассировке стека, это не имеет ничего общего с подключением к базе данных, но похоже, связано с тем, что пользователь отправляет два запроса от серверной части. Я изменил теги, но вы можете немного перефразировать вопрос и изменить заголовок, чтобы привлечь больше внимания.
По сути, ваше приложение получает два запроса и обрабатывает их оба. Я уже давно это видел, но, насколько я помню, первый получает эту ошибку, потому что браузер закрыл соединение TCP / IP, чтобы открыть новое для второго запроса. (Вероятно, это немного упрощает HTTP / 1.1, так как он использует соединения).
Я думаю, что мы решили эту проблему, скрыв уникальный идентификатор на странице в том виде, как он был сгенерирован, и затем обнаружив, получили ли мы второй запрос POST в том же сеансе с этим UID - указывая, что они были отправлены дважды. Это было какое-то время назад, поэтому я довольно размышляю о том, что именно мы сделали, и о том, как мы перестали быть видимыми для пользователя; Напомню, что мы завернули HttpServletRequest для второго запроса в HttpServletRequestWrapper, который, по-видимому, изменил запрос с POST на GET, но мне пришлось бы немного покопаться, чтобы понять, что происходит.
Редактировать: Эта ссылка довольно старая, но, кажется, есть лучший способ справиться с ней, чем что-либо древнее, которое я могу перетащить (что, по сути, является вариантом 2 в этом сообщение). Вероятно, есть несколько распространенных способов справиться с этим.