Xpage扩展库休息服务返回:http 200错误请求,无法读取未读标记

时间:2013-03-06 10:40:43

标签: rest xpages xpages-extlib

我编写了一个Xpage扩展库休息服务,它一直工作到今天,在我的开发环境中它工作但不是生产(相同的文档): 这里是ajax联系休息服务时的响应:

 {
    "code":400,
    "text":"Bad Request",
    "message":"Unable to read Unread Marks",
    "type":"text",
    "data":"com.ibm.domino.services.ServiceException: 
    at com.ibm.domino.services.rest.das.view.RestViewNavigatorFactory$NOINavigator.getRead(RestViewNavigatorFactory.java:175)
    at com.ibm.domino.services.rest.das.view.RestViewItemFileService.writeSystemColumns(RestViewItemFileService.java:359)
    at com.ibm.domino.services.rest.das.view.RestViewItemFileService.writeEntryAsJson(RestViewItemFileService.java:308)
    at com.ibm.domino.services.rest.das.view.RestViewItemFileService.renderServiceJSONGet(RestViewItemFileService.java:280)
    at com.ibm.domino.services.rest.das.view.RestViewItemFileService.renderService(RestViewItemFileService.java:77)
    at com.ibm.domino.services.HttpServiceEngine.processRequest(HttpServiceEngine.java:167)
    at com.ibm.xsp.extlib.component.rest.UIBaseRestService._processAjaxRequest(UIBaseRestService.java:242)
    at com.ibm.xsp.extlib.component.rest.UIBaseRestService.processAjaxRequest(UIBaseRestService.java:219)
    at com.ibm.xsp.util.AjaxUtilEx$1.invokeContextCallback(AjaxUtilEx.java:194)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:862)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
    at com.ibm.xsp.component.UIViewRootEx.invokeOnComponent(UIViewRootEx.java:1552)
    at com.ibm.xsp.util.AjaxUtilEx.renderAjaxPartialLifecycle(AjaxUtilEx.java:188)
    at com.ibm.xsp.webapp.FacesServletEx.renderAjaxPartial(FacesServletEx.java:225)
    at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:170)
    at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:583)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1281)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:854)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:803)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:572)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1265)
    at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:658)
    at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:481)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297)
    at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: NotesException: Unable to read Unread Marks
    at lotus.domino.local.ViewEntry.getRead(Unknown Source)
    at com.ibm.domino.services.rest.das.view.RestViewNavigatorFactory$NOINavigator.getRead(RestViewNavigatorFactory.java:173)
    ... 35 more
"
}   

我不知道出了什么问题。 它只是停止工作

1 个答案:

答案 0 :(得分:0)

您是否正在使用提供的示例之一来获取documentCollection?如果没有,您的生产数据库是否有未读标记?您的REST调用是否具有访问权限/您的数据库是否允许通过REST进行匿名访问?

您的错误在这里:       在lotus.domino.local.ViewEntry.getRead(未知来源)

NotesViewEntry类的此方法查找用户名,以便知道是否返回一个布尔值,告知是否已读取该条目。如果未指定用户,则返回当前用户,可能是服务器或在REST服务中进行身份验证的用户。

此外,我发现此http://www-10.lotus.com/ldd/nd8forum.nsf/5f27803bba85d8e285256bf10054620d/2f8ee50784b70b06852577dc0050efeb?OpenDocument表示未读标记在某些版本中无效,但我无法对其进行验证。

如果您可以删除调用getRead()的行并运行它,那将为您确认。

干杯, 布赖恩