我正在使用sap-cloud-sdk for java来获取(也使用过滤器) SAP C4C票证。由于元数据验证失败,我的请求无法执行(参见下面的堆栈跟踪)。由于这些元数据超出了我的控制范围,而且我甚至对所有数据都不感兴趣,所以我更希望有跳过验证的选项(类似于缓存元数据的选项)。我有没有办法做这件事?
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at org.apache.olingo.odata2.client.core.ep.deserializer.XmlMetadataDeserializer.validateRelationship(XmlMetadataDeserializer.java:1483) ~[odata-v2-lib-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at org.apache.olingo.odata2.client.core.ep.deserializer.XmlMetadataDeserializer.validate(XmlMetadataDeserializer.java:1576) ~[odata-v2-lib-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at org.apache.olingo.odata2.client.core.ep.deserializer.XmlMetadataDeserializer.readMetadata(XmlMetadataDeserializer.java:181) ~[odata-v2-lib-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at org.apache.olingo.odata2.client.core.ODataClientImpl.readMetadata(ODataClientImpl.java:100) ~[odata-v2-lib-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.odatav2.connectivity.cache.metadata.GuavaMetadataCache.getEdm(GuavaMetadataCache.java:139) ~[odatav2-connectivity-sdk3-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.odatav2.connectivity.ODataQuery.loadMetadata(ODataQuery.java:480) [odatav2-connectivity-sdk3-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.odatav2.connectivity.ODataQuery.loadEntriesFromDestination(ODataQuery.java:326) [odatav2-connectivity-sdk3-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.odatav2.connectivity.ODataQuery.internalExecute(ODataQuery.java:265) [odatav2-connectivity-sdk3-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.odatav2.connectivity.ODataQuery.execute(ODataQuery.java:162) [odatav2-connectivity-sdk3-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.odatav2.connectivity.ODataQuery.execute(ODataQuery.java:146) [odatav2-connectivity-sdk3-1.39.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.datamodel.odata.helper.FluentHelperCount.execute(FluentHelperCount.java:45) [odata-core-3.22.0.jar:na]
2020-09-23T22:26:01.97+0300 [APP/PROC/WEB/0] OUT at com.sap.chatbot.service.core.DefaultTicketService.getTotalNumberOfTickets(DefaultTicketService.java:222) [classes/:na]```
Thank you发布于 2020-09-24 21:13:11
根据堆栈跟踪,我可以推断出您使用的是SAP Cloud SDK3.22.0,并且您已经为C4C OData应用程序接口生成了您的自定义VDM。我建议您始终保持云SDK的最新版本。有关进一步的参考,请参阅我们的release notes。
根据提供的信息,不可能确切地说出元数据验证失败的原因。但是,正如您所指出的,解决方案可能是完全阻止元数据访问。
我推荐试用SAP Cloud SDk的改进的OData客户端。这个新的OData客户端库不再通向metadata access。Here是如何调整代码库以利用新OData客户机。
发布于 2020-09-24 21:36:36
索瑞娜
幸运的是,今天我们发布了改进的OData v2 client的新版本,它应该解决了元数据问题,因为它不依赖于以前的客户端版本。我已经可以看到它被上传到mvn central了
请查看我们的documentation以方便迁移。
我希望它能解决你的问题。以防以后再找我们寻求帮助。
https://stackoverflow.com/questions/64043742
复制相似问题