为什么我的SAPUI5应用程序中的OData $ batch请求失败?

问题描述 投票:0回答:1

我在Wildfly上运行了OData v2服务。此服务连接到SQL Server中的单个表。在Postman中查询此服务的元数据和表数据非常有用。我相信OData服务本身可以正常工作。

我有一个SAPUI5应用程序,该应用程序指向描述符中的服务(称为SITEDATA):

"sap.app": {
    ...,
    "dataSources": {
        "SAM": {
            "uri": "http://localhost:8080/odata/SITEDATA/",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0"
            }
        }
    },...

"sap.ui5": {
    ...,
    "models": {
        ...,
        "perDiem": {
            "dataSource": "SAM"
        }...

我有一个非常简单的视图,它指向单个表(也称为SITEDATA):

    <List 
    items="{ path : 'perDiem>/SITEDATA' }">
    ...
    <items>
        <ObjectListItem title="{perDiem>SITE_ID}">

当我运行该应用程序时,我可以看到该应用程序成功查询了以下服务:

  • http: //localhost:8080/odata/SITEDATA/$metadata
  • http: //localhost:8080/odata/SITEDATA/SITEDATA?$skip=0&$top=100

...以及其他一堆东西。但后来我明白了:

Request URL: http://localhost:8080/odata/SITEDATA/$batch, Status Code: 500 Internal Server Error

WildFly日志显示SITEDATA/$batch不存在。但是,localhost:8080/odata/SITEDATA/SITEDATA/$batch可以正常工作。

并且在研究了这个问题几天后,好像是,应该在表而不是服务上执行$ batch请求。因此,错误是有道理的。但我找不到解决此问题的任何方法。

有人遇到这个问题,或者看到我需要做些什么来纠正它?

odata sapui5 wildfly
1个回答
0
投票

您是否能够成功完成$ batch呼叫,其中包括对/SITEDATA端点的呼叫? sap.ui.model.odata.v2.ODataModel类默认将模型初始化为使用批处理调用。您可以通过在描述符的模型定义中添加"useBatch": false来禁用它。您可以尝试查看问题是否与批处理调用有关。

© www.soinside.com 2019 - 2024. All rights reserved.