Odata服务元数据失败

时间:2018-06-12 07:51:32

标签: odata sapui5 metadata

后端团队提供了新的Odata服务。我在清单中声明它并在控制器中使用它。它在我的系统中工作正常。但它在任何其他环境中都无法正常工作。我收到一条错误消息 - 元数据的初始加载失败。还有一些内部服务器错误。

的manifest.json

"ordersq": {
            "uri": "/sap/opu/odata/sap/ZOrders_QUEUE_SRV/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0",
                "localUri": "localService/ZOrders_QUEUE_SRV/metadata.xml"
            }
        },

控制器:

var sServiceUrl = this.getOwnerComponent().getMetadata().getManifestEntry("sap.app").dataSources["ordersq"].uri;
                var OdataModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl);
                var sPath = "/BuyersQueueSet('" + mfOrder + "')";
                OdataModel.read(sPath, {
                    success: this.queueSuccess.bind(this),
                    error: this.queueError.bind(this)
                });
            }

我有什么遗失的东西。我是否必须为该metadata.xml做些什么?我没有配置更多。我只是复制粘贴localuri如何为其他服务提供它而不添加任何元数据的新服务。

1 个答案:

答案 0 :(得分:0)

可能你遇到了CORS问题。如果您在请求$ metadata时有401或403,请检入网络跟踪。当您尝试从其他服务器加载某些资源时会发生这种情况。

这是一个众所周知的常见问题,出于安全考虑,这是一个问题。有几种方法可以克服它,所有这些都有很好的记录。

通常,如果您使用的是SAP Cloud Platform,只需在Netweaver服务器中配置指向您的服务的目的地(您需要云连接器才能从云访问您的专用网络)。如果您要在其他Netweaver服务器中部署应用程序,我认为最简单的解决方案是将WebDispatcher设置为反向代理。

另一种可能性是在请求$元数据时出现404错误。如果您收到此信息,那是因为您没有将请求路由到正确的Netweaver系统。确保配置WebDispacher以将某些URL解析为正确的系统。再次,大量的教程向您展示如何做到这一点。