Ошибка компиляции JSP в WAS 8.5.5 в Linux (работает как и ожидалось в Windows) - PullRequest
0 голосов
/ 28 августа 2018

У меня странное поведение на Webshphere 8.5.5.13 в Linux.

Я расширил приложение для крупных предприятий (IBM Maximo Enterprise Asset Management 7.6.0.9) и добавил несколько классов и файл JSP.

Эти изменения прекрасно работают на Webshere под Windows (и Weblogic) в течение многих месяцев для многих клиентов. Теперь у нас есть клиент, который развернул это корпоративное приложение в Linux, и возникли непредвиденные проблемы.

При доступе к моему простому JSP в Linux я получаю следующее сообщение об ошибке в SystemOut.log сервера приложений:

[8/28/18 16:16:06:336 CEST] 00000633 FfdcProvider  W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/logs/ffdc/MXServer_79a40fc5_18.08.28_16.16.06.3072776788115294465046.txt com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.translateJsp 259
[8/28/18 16:16:06:337 CEST] 00000633 webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[/webclient/common/eamdmtrequesthandler.jsp]: com.ibm.ws.jsp.JspCoreException: JSPG0049E: /webclient/common/eamdmtrequesthandler.jsp failed to compile :

JSPG0091E: An error occurred at line: 3 in the file: /webclient/common/eamdmtrequesthandler.jsp
JSPG0093E: Generated servlet error from file: /webclient/common/eamdmtrequesthandler.jsp

/opt/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/temp/ctgNode01/MXServer/MAXIMO/maximouiweb.war/webclient/common/_eamdmtrequesthandler.java : 7 : The import de cannot be resolved

JSPG0091E: An error occurred at line: 8 in the file: /webclient/common/eamdmtrequesthandler.jsp
JSPG0093E: Generated servlet error from file: /webclient/common/eamdmtrequesthandler.jsp

/opt/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/temp/ctgNode01/MXServer/MAXIMO/maximouiweb.war/webclient/common/_eamdmtrequesthandler.java : 87 : ExportXLS cannot be resolved to a type

JSPG0091E: An error occurred at line: 8 in the file: /webclient/common/eamdmtrequesthandler.jsp
JSPG0093E: Generated servlet error from file: /webclient/common/eamdmtrequesthandler.jsp

/opt/IBM/WebSphere/AppServer/profiles/ctgAppSrv01/temp/ctgNode01/MXServer/MAXIMO/maximouiweb.war/webclient/common/_eamdmtrequesthandler.java : 87 : ExportXLS cannot be resolved to a type

        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.translateJsp(AbstractJSPExtensionServletWrapper.java:616)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper._checkForTranslation(AbstractJSPExtensionServletWrapper.java:477)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.checkForTranslation(AbstractJSPExtensionServletWrapper.java:298)
        at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:167)

Факты:

  • Все необходимые классы доступны в правильной папке. Я проверил файл EAR и папку установленных приложений в Websphere.
  • Все файлы читабельны и доступны. Нет проблем с разрешениями. Websphere работает как root, SELinux отключен
  • В том же файле EAR, в котором есть эта ошибка в Linux, такой проблемы нет при развертывании в Windows.
  • Я получаю то же сообщение об ошибке, когда пытаюсь скомпилировать JSP с помощью команды JspBatchCompiler.sh из командной строки.
  • Я переместил свои классы из de.eam.webclient.servlet в psdi.webclient.servlet (уже существующий пакет, который является частью Maximo), и затем JSP работает как положено.

Я проверил файл журнала MXServer_79a40fc5_18.08.28_16.16.06.3072776788115294465046.txt и также проверил, что путь к классам содержит мои классы в моей папке.

Что может быть причиной того, что Websphere не нашел мой каталог пакета верхнего уровня "de" и не нашел классы, даже если они находятся в пути к классам и находятся в Windows.

Что я могу сделать, чтобы отследить это? Это ошибка в Websphere в Linux?

Файл JSP: </p> <pre><code><%@ page language="java" %><%@ page contentType="text/html; charset=utf-8" %><%@ page import="de.eam.webclient.servlet.ExportXLS" %><% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); ExportXLS servlet = new ExportXLS(); servlet.handleRequest(request, response); %>

...