0

我有一个在 8.5.3 UP1 上运行的 XPages 应用程序,带有移动控制界面。它在我的开发和测试服务器上运行良好,但在生产中,当用户单击视图控件中的“加载更多”按钮时,我们会看到以下间歇性错误:

2012 年 5 月 10 日下午 4:12:在 com.ibm.domino.xsp.module.nsf.NotesContext.checkAccess(NotesContext.java:1611) 在 com.ibm.domino 处抛出异常 com.ibm.xsp.acl.NoAccessSignal .xsp.module.nsf.NotesContext.serverProcessSignedResource(NotesContext.java:955) 在 com.ibm.domino.xsp.module.nsf.NotesContext.setSignerSessionRights(NotesContext.java:926) 在 com.ibm.domino.xsp.module .nsf.ModuleClassLoader$DynamicClassLoader.loadClass(ModuleClassLoader.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:619) at com.ibm.domino.xsp.module.nsf.ModuleClassLoader.loadClass(ModuleClassLoader.java :171) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:619) 在 com.ibm.designer.runtime.Application.loadClass(Application.java:708) 在 com.ibm.xsp.library.ApplicationFacesClassLoader.loadClass( ApplicationFacesClassLoader.java:54) 在 com.ibm.xsp.page.compiled.CompiledPageDriver.loadPage(CompiledPageDriver.java:61) 在 com.ibm.xsp 的 com.ibm.xsp.page.compiled.CompiledPageDriver.getClassForPageName(CompiledPageDriver.java:166) .application.ViewHandlerExImpl._createViewRoot(ViewHandlerExImpl.java:489) 在 com.ibm.xsp.application.ViewHandlerExImpl.createViewRoot(ViewHandlerExImpl.java:557) 在 com.ibm.xsp.application.ViewHandlerExImpl.doCreateView(ViewHandlerExImpl.java:141 ) 在 com.ibm.xsp.application.ViewHandlerEx.createView(ViewHandlerEx.java:90) 在 com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:238) 在 com.ibm.xsp.webapp.FacesServletEx .serviceView(FacesServletEx.java:200) 在 com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160) 在 com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137) 在 com。 ibm。xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103) 在 com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576) 在 com.ibm.domino.xsp.module.nsf。 NSFComponentModule.invokeServlet(NSFComponentModule.java:1267) 在 com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:847) 在 com.ibm.designer.runtime.domino.adapter.ComponentModule$ ServletInvoker.doService(ComponentModule.java:796) 在 com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565) 在 com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService (NSFComponentModule.java:1251) 在 com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:598) 在 com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:421) 在 com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341) 在 com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297)在 com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)

2012 年 5 月 10 日下午 4:43:在 com.ibm.domino.xsp.module.nsf.NotesContext.checkAccess(NotesContext.java:1611) 处抛出 com.ibm.xsp.acl.NoAccessSignal 异常 在 com.ibm.domino.xsp.module.nsf.NotesContext.serverProcessSignedResource(NotesContext.java:955) 在 com.ibm.domino.xsp.module.nsf.NotesContext.setSignerSessionRights(NotesContext.java:926) 在 com.ibm .domino.xsp.module.nsf.ModuleClassLoader$DynamicClassLoader.loadClass(ModuleClassLoader.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:619) at com.ibm.domino.xsp.module.nsf.ModuleClassLoader com.ibm.designer.runtime.Application.loadClass(Application.java:708) 上 com.ibm.xsp 上的 java.lang.ClassLoader.loadClass(ClassLoader.java:619) 上的 .loadClass(ModuleClassLoader.java:171)。库.ApplicationFacesClassLoader.loadClass(ApplicationFacesClassLoader.java: xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)   在 com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576) 在 com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1267) 在 com.ibm .designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:847) 在 com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796) 在 com.ibm .designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565) 在 com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1251) 在 com.ibm.domino.xsp .module.nsf.NSFService.doServiceInternal(NSFService.java:598) 在 com.ibm.domino.xsp.module.nsf.NSFService。com.ibm.designer.runtime.domino.adapter 上的 doService(NSFService.java:421)。LCDEnvironment.doService(LCDEnvironment.java:341) 位于 com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297) 位于 com.ibm.domino.xsp.bridge.http.engine.XspCmdManager。服务(XspCmdManager.java:272)

任何想法将不胜感激。

马特

4

2 回答 2

0

Keith 和我都在以下场景中遇到过这种行为(在不同的应用程序中):

  1. 当前用户已通过目录服务进行身份验证;换句话说,他们在主 Domino 目录中没有帐户。
  2. XPage 具有特定于页面的 ACL

例如,我曾经在 watrCoolr 中使用页面 ACL 来指定经过身份验证的用户将拥有对聊天数据源的编辑器访问权限,但匿名用户只能拥有阅读器。只要我作为在 names.nsf 中明确注册的用户进行身份验证,它就可以正常工作。如果我以 LDAP 目录中定义的用户身份进行身份验证,该页面将堆栈跟踪。一旦我切换到简单地对匿名用户隐藏可编辑控件并删除页面 ACL,就不再有堆栈跟踪。

这可以解释为什么它在开发和测试中运行良好但在生产中崩溃,如果您没有在前者中使用目录帮助,而它们在后者中。

于 2012-05-13T18:09:36.807 回答
0

好的,这被证明是一个非常奇怪的问题,它特别影响了 iOS 设备。我编写了一些额外的代码来检测应用程序是否在独立模式下运行(即用户在主屏幕上创建了应用程序的快捷方式)。此代码循环遍历所有具有 onclick 事件的标签,并阻止它们启动 Safari 并强制它们在独立浏览器窗口中运行。在加载更多按钮的情况下,这就是导致服务器错误的原因。我仍然不明白为什么这是一个错误,但它很容易修复,当我循环浏览页面中的所有其他内容时,只需不要处理“加载更多”按钮。

谢谢各位的帮助。

于 2012-05-15T14:07:43.740 回答