我遇到了很奇怪的行为我无法解释,但我需要。在Xpage上,我嵌入了使用视图数据源和相应的转发器创建的视图。现在我发现,该视图数据源返回所有视图条目,即使那些用户无法访问到期访问控制(读者字段)。在重复控件内部我得到了NotesXSPViewEntry.getDocument()nullPointer错误,因为NotesXSPViewEntry为getDocument()返回null。视图数据源如何返回我无权访问的文档的条目?更多这个应用程序在生产一年,但我们发现这种行为最近似乎升级到9.01FP3(从9.01)。开发服务器在没有FP的9.01上运行并且工作正常有人注意到这种奇怪的行为吗?
编辑#1: 它是单一类别视图,用户无权访问该类别中的任何文档。现在,当我使用NotesXSPViewEntry.getDocument()!= null修复代码内部重复检查时,我可以通过这种方式修复视图,因此xpage正确呈现,但在任何提交后,它失败并显示如下隐藏的内部错误。 (我甚至尝试使用空动作的按钮,只检查完整提交)
NotesException: A required argument has not been provided
Location:
Code Snippet:
... 64 more at com.ibm.xsp.script.WrapperDominoEx$fct_AbstractDominoViewEntry.call(WrapperDominoEx.java:820) at com.ibm.xsp.model.domino.wrapped.DominoViewEntry.getDocument(DominoViewEntry.java:381) at lotus.domino.local.Database.getDocumentByUNID(Unknown Source) at lotus.domino.local.Database.NgetDocumentByUNID(Native Method)
Caused by: NotesException: A required argument has not been provided
... 48 more at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78) at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:194) at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:222) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251) at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410) at java.security.AccessController.doPrivileged(AccessController.java:365) at com.ibm.jscript.JSExpression$2.run(JSExpression.java:414) at com.ibm.jscript.JSExpression.access$1(JSExpression.java:424) at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435) at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139) at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119) at com.ibm.jscript.ASTTree.binaryop.ASTBinaryRelAnd.interpret(ASTBinaryRelAnd.java:73) at com.ibm.jscript.ASTTree.binaryop.ASTBinaryDefaultOp.interpret(ASTBinaryDefaultOp.java:49) at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197) at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161) at com.ibm.xsp.script.WrapperDominoEx$fct_AbstractDominoViewEntry.call(WrapperDominoEx.java:1105)null
Caused by: com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=19: [TypeError] Exception occurred calling method NotesXspViewEntry.getDocument()
... 19 more at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:98) at com.ibm.xsp.component.UIViewRootEx.processDecodes(UIViewRootEx.java:1399) at com.ibm.xsp.component.UIViewRootEx._processDecodes(UIViewRootEx.java:1438) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:343) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIForm.processDecodes(UIForm.java:166) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) at com.ibm.xsp.component.UIDataIterator.processDecodes(UIDataIterator.java:780) at com.ibm.xsp.component.UIDataPanelBase.isRendered(UIDataPanelBase.java:78) at com.ibm.xsp.component.UIDataPanelBase.isRenderedProp(UIDataPanelBase.java:81) at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:451) at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)
答案 0 :(得分:2)
在“视图设置”中,某个地方的某个属性基本上表示“不显示空类别”。这可能是正在发生的事情。 “读者”字段正在运行,但视图索引本身内部存在多个安全文档,并且由于类别,可供更多用户使用。因此,在客户端中,您可以打开“不显示空”选项来消除它 我认为这也适用于XPages世界,但我并不是百分之百确定,因为我没有在XPages中完成很多读者领域。