У меня есть веб-приложение, работающее на TOMCAT 7.0.5 - JDK 1.7 - и подключающееся к SQL Server 2012.
Спящий вариант - 4.3.5. Используется браузер IE 11.0.
Проблема в том, что у меня есть веб-страница: обычная форма отправки (submit.jsp). Он показывает страницу только для чтения (submitConfirm.jsp) и имеет две кнопки.
- Отправить - сохраняет приложение и перенаправляет страницу на домашнюю страницу, чтобы снова начать подписку
- Печать - с помощью javascript открывается новая вкладка для печати PDF-формы, которая, вероятно, занимает от 2 до 5 секунд для рендеринга на «новой» вкладке.
- Кнопка отправки отключена по умолчанию и доступна только тогда, когда пользователь нажимает кнопку ПЕЧАТЬ. Когда элемент все еще отображается, если кто-то нажимает на кнопку «Продолжить», все действия выполняются хорошо, и при этом я сохраняю как печать, так и подписку.
- Следующие введенные подписки приведут к ошибке http 500, указывающей «Соединение уже закрыто».
- Я использую стандартную парадигму HibernateUtil для начала / завершения / фиксации / отката транзакций.
- Все модели основаны на XML (не на основе декоратора сущностей).
Для нормальных рабочих процессов, где, если пользователь ждет, пока PDF будет отрендерен, все в порядке.
Но если пользователь нажимает кнопку продолжения - кажется, есть проблема.
Прикреплен скриншот ошибки, когда кто-то считает полезным предоставить несколько советов.
На основе отзывов пользователей (соответствующий метод):
public String reportSessionId(String userId) throws InfrastructureException {
String sid = null;
try {
sid = (String) HibernateUtil.getSession()
.getNamedQuery("com.ttsme.ims.model.IMSUser.reportSessionId")
.setString("userId", userId).uniqueResult();
}
catch (HibernateException ex) {
throw new InfrastructureException(ex);
}
catch (Exception exp)
{
exp.printStackTrace();
}
return sid;
}