代码之家  ›  专栏  ›  技术社区  ›  THI

OData服务元数据失败

  •  0
  • THI  · 技术社区  · 7 年前

    后端团队提供了一个新的odata服务。我在清单中声明了它,并在控制器中使用了它。它在我的系统中工作正常。但在其他任何环境下都不能正常工作。我得到一个错误说-元数据的初始加载失败。以及一些内部服务器错误。

    清单.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 回复  |  直到 7 年前
        1
  •  0
  •   Rafael López Martínez    7 年前

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

    这是一个众所周知的共同问题,而且是出于安全原因。有几种方法可以克服它,都有很好的记录。

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

    另一种可能是在请求$metadata时出现404错误。如果您收到此消息,是因为您没有将请求路由到正确的netweaver系统。请确保将WebDispatcher配置为将某些URL解析为正确的系统。再说一遍,有很多教程教你怎么做。

    推荐文章