У меня есть приложение Struts2, действие которого может занять от 1 секунды до 5 минут. Итак, я использую перехватчик execAndWait для отображения страницы ожидания, если для выполнения действия требуется более 20 секунд. Настройка действия выглядит так:Struts 2 - execAndWait
<action name="myAction" class="myActionClass">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="execAndWait">
<param name="delay">20000</param>
</interceptor-ref>
<result name="success">myPage.jsp</result>
<result name="wait">waitPage.jsp</result>
</action>
Я протестировал это со сценарием, в котором действие занимает всего 1 секунду. Я ожидал, что страница ожидания никогда не будет показана.
Однако страница ожидания все еще обнаруживалась. Я попытался отладки мой класс действия и метод, и обнаружил, что выполнение висит в этом заявлении ниже в течение времени, указанного в
<param name="delay">
В этом случае, он ждет 20 секунд в заявлении ниже, а затем завершает выполнение успешно.
getSession().put(A_SESSION_VARIABLE, 10);
Примечание: MyActionClass ли реализовать SessionAware
Кто-нибудь еще возникла эта проблема? Есть ли для этого работа?
Спасибо, Александр. Оно работало завораживающе. Цените свой ответ !!! –
@MathewGeraldo: Не забудьте принять ответы, которые помогли вам и upvote, если у вас достаточно репутации. –
Я борюсь за это решение с одного дня. Тем не менее, я не понял, почему это происходит. @ AleksandrM Пожалуйста, дайте нам понять, почему это происходит. Это более полезно. – udaybhaskar