Проблема рендеринга JSP в WAS9 с пакетом обновления 6 - PullRequest
0 голосов
/ 06 сентября 2018

Я планирую перенести приложение из Websphere 7 в Websphere 9. Это развернутое приложение, которое отлично работает на WAS7, и я не вносил в него никаких изменений, кроме перехода на WAS9 на моем локальном сервере.

Однако при переносе этого приложения на локальный компьютер с WAS9 с пакетом обновления 6 я сталкиваюсь с проблемами рендеринга JSP, т. Е. Порядок отображения текстовых полей в локальном WAS9 (SP6) отличается от порядка, в котором текстовые поля отображаются в локальном WAS9 с пакетом обновления 1.

Результаты WAS9 (SP1) для JSP соответствуют ожидаемым и аналогичны удаленному развернутому производственному коду WAS7.

Существует только один файл jsp, и в нем есть несколько операторов if-else (прилагаются ниже), которые отображают текст в соответствии с типом данных поступающего ввода.

Что я проанализировал, так это то, что для WAS9 (SP6) он выбирает случайный порядок этих блоков else-if, хотя в зависимости от типа данных этого блока else-if, но не в последовательности.

Результаты WAS9 SP6: введите описание изображения здесь Результаты WAS9 SP1: введите описание изображения здесь

else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Integer")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
        <%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Date")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <%=methods[i].getName().substring(3)%> </td>
        <%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Calendar")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <%=methods[i].getName().substring(3)%> </td>
        <%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("XMLGregorianCalendar")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <%=methods[i].getName().substring(3)%> </td>
        <%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("String")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
        <% }else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("int")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
        <% }else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Short")) { %>
            <td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
        <% }

Вопрос: с использованием WAS9 SP6, есть ли какое-либо исправление, позволяющее развернуть исходный продукт и использовать тот же вывод, что и у WAS9 (SP1)? У меня нет возможности развернуть код с помощью SP1, потому что удаленный сервер также содержит SP6 для WAS9. Последнее переписывает JSP для получения ожидаемых результатов.

...