尝试"加载更多"时抛出NoAccessSignal异常在Mobile Controls视图中

时间:2012-05-11 07:10:13

标签: mobile xpages

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

5/10/12 4:12 PM:异常抛出 com.ibm.xsp.acl.NoAccessSignal     在com.ibm.domino.xsp.module.nsf.NotesContext.checkAccess(NotesContext.java:1611)     at 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)     在java.lang.ClassLoader.loadClass(ClassLoader.java:619)     在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.getClassForPageName(CompiledPageDriver.java:166)     在com.ibm.xsp.page.compiled.CompiledPageDriver.loadPage(CompiledPageDriver.java:61)     at com.ibm.xsp.application.ViewHandlerExImpl._createViewRoot(ViewHandlerExImpl.java:489)     at com.ibm.xsp.application.ViewHandlerExImpl.createViewRoot(ViewHandlerExImpl.java:557)     at com.ibm.xsp.application.ViewHandlerExImpl.doCreateView(ViewHandlerExImpl.java:141)     在com.ibm.xsp.application.ViewHa ndlerEx.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.doSe rvice(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)

5/10/12 4:43 PM:异常抛出 com.ibm.xsp.acl.NoAccessSignal     在com.ibm.domino.xsp.module.nsf.NotesContext.checkAccess(NotesContext.java:1611) & nbsp; at 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)     在java.lang.ClassLoader.loadClass(ClassLoader.java:619)     在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.getClassForPageName(CompiledPageDriver.java:166)     在com.ibm .xsp.page.compiled.CompiledPageDriver.loadPage(CompiledPageDriver.java:61)     at com.ibm.xsp.application.ViewHandlerExImpl._createViewRoot(ViewHandlerExImpl.java:489)     at com.ibm.xsp.application.ViewHandlerExImpl.createViewRoot(ViewHandlerExImpl.java:557)     at 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)   &安培; NBSP;在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)

任何想法都会受到赞赏。

马特

2 个答案:

答案 0 :(得分:0)

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

  1. 当前用户通过目录服务进行身份验证;换句话说,他们在主Domino目录中没有帐户。
  2. XPage具有特定于页面的ACL
  3. 例如,我曾经在watrCoolr中使用页面ACL来指定经过身份验证的用户具有对聊天数据源的编辑者访问权限,但匿名用户只能拥有阅读器。只要我在names.nsf中明确注册的用户进行身份验证,那就行得很好。如果我作为在LDAP目录中定义的用户进行身份验证,则该页面将堆栈跟踪。只要我切换到隐藏匿名用户的可编辑控件并删除了页面ACL,就不再有堆栈跟踪。

    这可以解释为什么它在开发和测试中工作正常但在生产中会爆炸,如果你没有在前者中使用目录服务而且他们在后者中。

答案 1 :(得分:0)

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

感谢所有人的帮助。