2

我想在我正在构建的应用程序中使用 Dojo 数据网格/REST 服务架构。但是,我找不到让 REST 服务指向当前应用程序之外的另一个应用程序中的视图的属性(或代码)。

我可以在 REST 服务的视图名称中使用数据上下文吗?或者是否有另一个属性可以设置为指向另一个应用程序中的视图?

谢谢 - 感谢您的帮助!

--------- 编辑 2013 年 6 月 24 日 ---------

我已经尝试了 viewItemFileService 和 viewJSONService ,但我只能让 viewJSONService 与其他数据库一起工作。viewItemFileService 只显示“抱歉,发生错误”数据行应该在的位置。这是代码-我不确定我在哪里犯了错误:

            <xp:panel>
                View JSON<xp:br></xp:br>
                <xe:restService id="restService1">
                    <xe:this.service>
                        <xe:viewJsonService databaseName="voca/vocadatastore.nsf"
                            defaultColumns="true" viewName="InvoicePersonnel" var="entry1"
                            contentType="application/json">
                        </xe:viewJsonService>
                    </xe:this.service>
                </xe:restService>
                <xe:djxDataGrid id="djxDataGrid2" autoHeight="10"
                    storeComponentId="restService1">
                    <xe:djxDataGridColumn id="djxDataGridColumn5"
                        label="Description" field="description" width="auto">
                    </xe:djxDataGridColumn>
                    <xe:djxDataGridColumn id="djxDataGridColumn6"
                        label="Items" field="items" width="auto">
                    </xe:djxDataGridColumn>
                    <xe:djxDataGridColumn id="djxDataGridColumn7"
                        label="Cost" field="cost" width="auto">
                    </xe:djxDataGridColumn>
                    <xe:djxDataGridColumn id="djxDataGridColumn8"
                        label="Total" field="total" width="auto">
                    </xe:djxDataGridColumn>
                </xe:djxDataGrid>
            </xp:panel>
            <xp:br></xp:br>
            <xp:br></xp:br>
            <xp:panel>View Domino<xp:br></xp:br>
                <xe:restService id="restServicePers">
                    <xe:this.service>
                        <xe:viewItemFileService databaseName="voca/vocadatastore.nsf"
                            defaultColumns="true" viewName="InvoicePersonnel" var="entry2">
                        </xe:viewItemFileService>
                    </xe:this.service>
                </xe:restService>
                <xe:djxDataGrid id="djxDataGrid1" autoHeight="10"
                    storeComponentId="restServicePers">
                    <xe:djxDataGridColumn id="djxDataGridColumn1"
                        label="Description" field="description" width="auto">
                    </xe:djxDataGridColumn>
                    <xe:djxDataGridColumn id="djxDataGridColumn2"
                        label="Items" field="items" width="auto">
                    </xe:djxDataGridColumn>
                    <xe:djxDataGridColumn id="djxDataGridColumn3"
                        label="Cost" field="cost" width="auto">
                    </xe:djxDataGridColumn>
                    <xe:djxDataGridColumn id="djxDataGridColumn4"
                        label="Total" field="total" width="auto">
                    </xe:djxDataGridColumn>
                </xe:djxDataGrid>
            </xp:panel>

--------- 编辑 2013 年 7 月 3 日 ---------

我将视图移动到与 REST 服务相同的数据库中,但仍然收到“抱歉,发生错误”消息。视图名称是正确的,因为我从列表中选择了 viewName。列标题/字段名称也是正确的。

<xe:restService id="restServicePers" pathInfo="persInfo">
                            <xe:this.service>
                                <xe:viewItemFileService defaultColumns="true"
                                    viewName="InvoicePersonnel" var="entryPers">
                                </xe:viewItemFileService>
                            </xe:this.service>
                        </xe:restService>
                        <xe:djxDataGrid id="djxDataGrid1" autoHeight="10"
                            storeComponentId="restServicePers">
                            <xe:djxDataGridColumn id="djxDataGridColumn1"
                                label="Description" field="description" width="auto">
                            </xe:djxDataGridColumn>
                        </xe:djxDataGrid>

我将 pathInfo 属性添加到 REST 服务以查看返回的内容并出现错误:

{
    "code":500,
    "text":"Internal Error",
    "message":"",
    "type":"text",
    "data":"java.lang.NullPointerException\r\n\tat com.ibm.domino.services.rest.das.view.RestViewNavigatorFactory$ViewNavigatorNavigator.getTopLevelEntryCount(RestViewNavigatorFactory.java:565)\r\n\tat com.ibm.domino.services.rest.das.view.RestViewItemFileService.renderServiceJSONGet(RestViewItemFileService.java:263)\r\n\tat com.ibm.domino.services.rest.das.view.RestViewItemFileService.renderService(RestViewItemFileService.java:77)\r\n\tat com.ibm.domino.services.HttpServiceEngine.processRequest(HttpServiceEngine.java:167)\r\n\tat com.ibm.xsp.extlib.component.rest.UIBaseRestService._processAjaxRequest(UIBaseRestService.java:242)\r\n\tat com.ibm.xsp.extlib.component.rest.UIBaseRestService.processAjaxRequest(UIBaseRestService.java:219)\r\n\tat com.ibm.xsp.util.AjaxUtilEx.renderAjaxPartialLifecycle(AjaxUtilEx.java:206)\r\n\tat com.ibm.xsp.webapp.FacesServletEx.renderAjaxPartial(FacesServletEx.java:225)\r\n\tat com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:170)\r\n\tat com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)\r\n\tat com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)\r\n\tat com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)\r\n\tat com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:583)\r\n\tat com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1281)\r\n\tat com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:854)\r\n\tat com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:751)\r\n\tat com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:572)\r\n\tat com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1265)\r\n\tat com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:658)\r\n\tat com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:481)\r\n\tat com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341)\r\n\tat com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297)\r\n\tat com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)\r\n"
}
4

1 回答 1

5

databaseName服务定义中有一个属性

  • xe:viewItemFileService
  • xe:viewJsonLegacyService
  • xe:viewJsonService
  • xe:viewXmlLegacyService

xe:restService.

如果它为空,则使用当前数据库,但如果输入数据库的路径和名称,则使用这些数据库。

视图名称在 property 中定义viewName

        <xe:restService id="restService1">
            <xe:this.service>
                <xe:viewItemFileService
                    databaseName="MyFolder/MyOtherDatabase.nsf"
                    viewName="AllContacts"
                    ...>
于 2013-06-23T17:04:39.477 回答