我正试图使用OData描述的VDM从S/4HANACloud1805系统中读取数据。目标使用基本身份验证。
样例呼叫:
final ErpConfigContext context = new ErpConfigContext("...");
return new DefaultQualityInspectionDataService().getAllInspectionLot().select(...).execute(context);这至少在S/4HANACloudSDK发布1.9.4之前起作用。由于更新到2.0.0,由于以下异常,无法再使用目标:
2018 06 18 12:43:55#+00#ERROR#org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/app-application].[com.sap.cloud...Servlet]##anonymous#https-jsse-nio-8041-exec-3#na#a078260ed#app#web#a078260ed#na#na#na#na#Allocate exception for servlet [com.sap.cloud...Servlet] com.sap.cloud.sdk.cloudplatform.connectivity.exception.DestinationAccessException: Failed to get ConnectivityConfiguration: no RequestContext available. Have you correctly configured a RequestContextFactory or have you wrapped your logic in a RequestContextExecutor when executing background tasks that are not triggered by a request?
at com.sap.cloud.sdk.cloudplatform.connectivity.ScpNeoDestinationFacade.getConnectivityConfiguration(ScpNeoDestinationFacade.java:60)
at com.sap.cloud.sdk.cloudplatform.connectivity.ScpNeoDestinationFacade.getDestinationConfiguration(ScpNeoDestinationFacade.java:108)
at com.sap.cloud.sdk.cloudplatform.connectivity.ScpNeoDestinationFacade.getGenericDestination(ScpNeoDestinationFacade.java:183)
at com.sap.cloud.sdk.cloudplatform.connectivity.DestinationAccessor.getGenericDestination(DestinationAccessor.java:136)
at com.sap.cloud.sdk.s4hana.connectivity.ErpConfigContext.<init>(ErpConfigContext.java:218)
at com.sap.cloud.sdk.s4hana.connectivity.ErpConfigContext.<init>(ErpConfigContext.java:367)
at com.sap.cloud.sdk.s4hana.connectivity.ErpConfigContext.<init>(ErpConfigContext.java:442)
at com.sap.cloud...Servlet.<init>(...Servlet.java:31)
...
at java.lang.Thread.run(Thread.java:808)当调用HTTP时,即使目标尚未被使用,也会立即发生异常。ErpConfigContext似乎有一个问题。从2.0.0开始,目标必须配置为ErpConfigContext而不是ErpEndpoint。我已经阅读了关于ErpConfigContext和RequestContext处理的迁移指南(ErpConfigContext),但是这个解决方案并不适用于我的应用程序,因为我从未使用过RequestContextListener,而且它仍然有效。
此外,使用ErpConfigContext在使用1.9.4时使用相同的编码,因此问题似乎是对2.x.x的更新。更新到2.1.0也不能解决这个问题。
我在几个OData服务中遇到了这个问题。
除了等待新的SDK更新之外,还有其他解决方案吗?
发布于 2018-06-18 19:33:42
您可能在servlet的构造函数中初始化ErpConfigContext吗?您能尝试在servlet的new ErpConfigContext("...")方法中调用doGet()吗?这里的问题可能是RequestContext的初始化只发生在servlet的过滤器链中。
https://stackoverflow.com/questions/50911945
复制相似问题