Мы используем WebSphere Portal версии 7. В наших темах есть всплывающее меню в заголовке. Ссылки во всплывающем меню различаются в зависимости от типа пользователя, обращающегося к приложению. Ссылки отображаются с использованием тегов навигации портала -
<portal:urlGeneration contentNode="com.XXXXX.member.XX.XXX123" keepNavigationalState="false">
Доступ к contentNode
установлен по правилам видимости. Для пользователей, у которых нет доступа к определенному узлу содержимого, ссылка не видна.
Поскольку всплывающее меню находится в заголовке темы, всякий раз, когда вошедший в систему пользователь не имеет доступа к определенной ссылке в меню, навигация по порталу выдает URLGeneration
ошибки, приводящие к NullPointer
исключениям. Эти ошибки регистрируются в нашем SysOut. Частота ошибок становится настолько высокой, что журналы откатываются, и команде сервера становится сложно их поддерживать.
Поскольку это проблема портала WebSphere, исправление для нее доступно в Portal 8 и более поздних версиях, но не в Portal 7.
Мы хотели бы знать, есть ли способ, которым приложение могло бы корректно обрабатывать URLGeneration
ошибки и перестать заполнять наши журналы. Мы не хотим реализовывать те же проверки правил видимости в наших темах, потому что тогда мы потеряем всю цель использования навигации портала, а также, когда бизнес-правила изменятся, это будет еще один дополнительный элемент, который нужно изменить.
Хотел бы услышать некоторые отзывы.
PS - трассировка стека журнала ошибок PFB -
[10/13/16 17:03:16:097 EDT] 00000052 CreateUrlComm E com.ibm.wps.util.CreateUrlCommand execute EJPEJ0012E: Could not find the node ID and root ID corresponding to the given content node ID.
[10/13/16 17:03:16:099 EDT] 00000052 UrlGeneration E com.ibm.wps.engine.tags.UrlGenerationTag doStartTag EJPEJ0004E: An unexpected exception occurred.
java.lang.NullPointerException
at com.ibm.wps.util.CreateUrlCommand.createFriendlyURL(CreateUrlCommand.java:809)
at com.ibm.wps.engine.tags.UrlGenerationTag.doStartTag(UrlGenerationTag.java:344)
at com.ibm._jsp._header._jspService(_header.java:1678)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at com.ibm.ws.cache.servlet.ServletWrapper.serviceProxied(ServletWrapper.java:307)
at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:576)
at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:250)
at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1694)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:970)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:508)