У меня есть приложение портлета JSR 168, которое было первоначально разработано для WebSphere Portal 6.0, а затем перешло в WebSphere Portal 7.0 с минимальными изменениями, необходимыми для его создания работа, и теперь я пытаюсь переместить его в WebSphere Portal 8.5.WebSphere Portal 8.5 - Приложение портлета - NullPointerException, вызванное служебным методом Error.jsp
Я тестировал только один из портлетов до сих пор на WP 8.5, используя версию приложения WP 7.0 без изменений. Кажется, это запускает приложение Error.jsp приложения, которое само создает исключение NullPointerException в журнале сервера.
Фрагменты проекта проекта включают в себя «JavaServer Faces 1.1» и «JavaServer Faces (IBM Enhanced) 7.0».
портлета Я тестирование имеет JSP, указанный в качестве домашней страницы с помощью этого элемента в portlet
элемента в файле «portlet.xml» в приложении:
<init-param> <name>com.ibm.faces.portlet.page.view</name> <value>/Admin/AdministratorControlView.jsp</value> </init-param>
Когда я открываю страницу, содержащую этот портлет в браузере, ожидаемый контент выглядит правильно, но ссылки в содержимом ничего не делают.
Каждая загрузка страницы производит эту трассировку стеки в «SystemOut.log» на сервере, который я усеченная несколько:
[14/08/15 13:52:27:826 EST] 00000158 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service CWSRV0068E: An exception was thrown by one of the service methods of the servlet [/Error.jsp] in application [PA_TeamElite]. Exception created : [java.lang.NullPointerException at com.ibm.ws.portletcontainer.tags.DefineObjectsTag.doStartTag(DefineObjectsTag.java:62) at com.ibm._jsp._Error._jspService(_Error.java:105) at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) ...
я предполагаю, другая ошибку вызвала error.jsp, но, если это так, исходная ошибка не отображается в файлах журналов или в браузере.
Что может вызвать NullPointerException
в Error.jsp и как его исправить?
Я подозреваю, что это проблема с конфигурацией, но полный контент Error.jsp приведен ниже, если это какая-то помощь.
MHFacesPortlet
Используется в Error.jsp - это пользовательский класс, который расширяет com.ibm.faces.portlet.FacesPortlet
.
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" session="false" isErrorPage="true"
import="com.devcompany.util.portlet.MHFacesPortlet"%>
<portlet:defineObjects />
<%javax.portlet.PortletURL url = renderResponse.createActionURL();
url.setParameter(MHFacesPortlet.PARAMETER_EXTENDED_ACTION,
MHFacesPortlet.ACTION_VIEW_MODE_RESET);
%>
<p>The following error has occurred. Click <a href="<%= url.toString()%>">here</a>
to go to the portlet home page.</p>
<%Throwable e = exception;
while (e != null)
{%>
<%=e.getMessage()%>
<br>
<br>
<%
e.printStackTrace();
e = e.getCause();
}%>
Похоже, вы пытаетесь использовать портлет связанных тег '<портлетов: defineObjects />' внутри страницы JSP, которая является не выполняются в потоке запросов портлета. Вы уверены, что ваш 'Error.jsp' отображается как часть портлета и не является отдельной страницей? –
@ KonstantinV.Salikhov - Нет, я не уверен в этом. Я знаю, что тот же самый «Error.jsp» работает в более старых версиях WebSphere Portal, и, когда он отображает, он делает это в той же области страницы, на которой отображается портлет. –