Ошибка создания URL-адреса в WebSphere Portal

Мы используем 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)

person Rishabh Ohri    schedule 20.10.2016    source источник


Ответы (1)


Вы можете указать ему игнорировать, либо только фатально, либо отключить https://www.ibm.com/support/knowledgecenter/SSEQTP_7.0.0/com.ibm.websphere.nd.doc/info/ae/ae/rtrb_enabletrc.html

com.ibm.wps.engine.tags.UrlGenerationTag=off

или вы можете поместить обработку исключений вокруг jsp, чтобы лучше справиться с этим

person Crosstalk22    schedule 21.10.2016
comment
Отключение регистратора - последний вариант, который мы пытались изучить, но большинство параметров были доступны только в Portal 8. Мы пробовали обработку исключений в jsp, но похоже, что выброшенное исключение Null Pointer Exception полностью переходит в jsp, поэтому попытка блоки catch не могут его поймать. Мы собираемся попробовать еще раз, прежде чем наконец выключим регистратор. - person Rishabh Ohri; 25.10.2016