由于我们将开发服务器从Domino 8.5.3升级到8.5.3 FP1,我们遇到了一个非常奇怪的问题。我们使用xe:viewJsonLegacyService以json格式输出视图内容,使用param sync:false输出dojo xhrGet。这样我们就可以一次向xe:viewJsonLegacyService xagent页面发出多个请求,并在请求完成时处理它们。
在Lotus Domino FP1之后,sync:false不再可用,如果我们同时发出三个请求,它将为一个请求(每次)返回两个请求的错误500和成功。我创建了一个示例数据库,显示出现了什么问题。但我不确定这是因为扩展库或Xpages中存在问题。
也许有人有这方面的经验,也许是一种解决方法?
我创建了一个示例应用程序供下载here,我在这里解释了这个问题。它将在Domino 8.5.3 SP1 / SP2安装上失败,但在Domino 8.5.3安装时不会失败。它需要扩展库。
编辑:这是从服务器返回的堆栈跟踪 显示java.lang.NullPointerException com.ibm.xsp.webapp.FacesServlet.acquireSyncToken(FacesServlet.java:285) com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:161) com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160) com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138) 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:1281) 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:1265) com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:653) com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:476) 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)
我在IBM开了一个PMR。从Domino 8.5.3 UP1升级到FP1 +时也会发生这种情况。
答案 0 :(得分:1)
只是想确认这适用于IBM Domino 9.0和IBM XWork Server 9.0。
因此,如果您遇到此问题,请考虑升级到9.0。
答案 1 :(得分:0)
我已经完成了PMR流程,IBM已将此识别为可重现的问题。他们无法告诉我这是否以及何时修复,但它可能在下一个维护版本或修复包中。
目前的解决方法是使用FP安装应用程序卸载FP1或FP2。
答案 2 :(得分:0)
这里的问题相同,我的解决方法是尽可能多地将其放入applicationScope中,以便快速返回一个请求。 这样,如果我在短时间内发出两个请求,则会降低获得此错误的机会...... 但它仍然可以发生,所以我对此并不满意:(