我在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
...以及其他一堆东西。但后来我明白了:
WildFly日志显示SITEDATA/$batch
不存在。但是,localhost:8080/odata/SITEDATA/SITEDATA/$batch
可以正常工作。
并且在研究了这个问题几天后,好像是,应该在表而不是服务上执行$ batch
请求。因此,错误是有道理的。但我找不到解决此问题的任何方法。
有人遇到这个问题,或者看到我需要做些什么来纠正它?
您是否能够成功完成$ batch呼叫,其中包括对/SITEDATA
端点的呼叫? sap.ui.model.odata.v2.ODataModel
类默认将模型初始化为使用批处理调用。您可以通过在描述符的模型定义中添加"useBatch": false
来禁用它。您可以尝试查看问题是否与批处理调用有关。