我们正在使用WebSphere Portal ver 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)
答案 0 :(得分: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周围进行异常处理以更好地处理它