尝试使用 S/4HANA Cloud SDK 使用来自 S/4HANA Cloud 的数据源创建自定义 OData v2 服务
Trying to create custom OData v2 service with data source from S/4HANA Cloud using S/4HANA Cloud SDK
我正在尝试使用 S/4HANA Cloud SDK 在 java 中使用 S/4HANA 云数据源创建自定义 OData v2 服务。我尝试遵循 SAP Press 书籍 "Extending SAP S/HANA: Side-by-Side Extensions with the SAP S/HANA Cloud SDK" 的第 8.3 节,除了我试图在第 285 页的依赖项中用 OData 版本 2 替换版本 4。当我执行 mvn clean install 时,它错误地告诉我它可以'在 com.sap.cloud.servicesdk.prov 中找不到 odatav2。 (当我改用 odatav4 时,我得到了全新安装。)我想要 OData v2 的原因是版本 4 似乎没有得到 SAPUI5 应用程序的良好支持。
OData V2 配置的设置看起来有点不同。因此,删除您为使用 OData V4 配置所做的所有修改。然后添加以下内容:
将以下依赖项(而不是 odata-v4 依赖项)添加到您的 application/pom.xml
文件中:
<dependency>
<groupId>com.sap.cloud.servicesdk.prov</groupId>
<artifactId>odata2.web</artifactId>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sap.cloud.servicesdk.prov</groupId>
<artifactId>odata2.xsa</artifactId>
</dependency>
<dependency>
<groupId>com.sap.cloud.servicesdk.prov</groupId>
<artifactId>odatav2-hybrid</artifactId>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sap.cloud.servicesdk.prov</groupId>
<artifactId>odatav2-prov</artifactId>
</dependency>
将以下条目添加到您的 application/src/main/webapp/WEB-INF/web.xml
文件中,将 YOUR.PACKAGE
替换为用于搜索您的 OData 端点的包:
<servlet>
<servlet-name>ODataServlet</servlet-name>
<servlet-class>org.apache.olingo.odata2.core.servlet.ODataServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>org.apache.olingo.odata2.service.factory</param-name>
<param-value>
com.sap.cloud.sdk.service.prov.v2.rt.core.CloudSDKODataServiceFactory
</param-value>
</init-param>
<init-param>
<param-name>org.apache.olingo.odata2.path.split</param-name>
<param-value>1</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ODataServlet</servlet-name>
<url-pattern>/odata/v2/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>package</param-name>
<param-value>YOUR.PACKAGE</param-value>
</context-param>
<listener>
<listener-class>
com.sap.cloud.sdk.service.prov.v2.rt.core.web.ServletListener
</listener-class>
</listener>
- 将 OData V2 edmx 文件添加到
application/src/main/resources/edmx
目录。
这些步骤应该可以启动您的 OData V2 配置服务并 运行。
我正在尝试使用 S/4HANA Cloud SDK 在 java 中使用 S/4HANA 云数据源创建自定义 OData v2 服务。我尝试遵循 SAP Press 书籍 "Extending SAP S/HANA: Side-by-Side Extensions with the SAP S/HANA Cloud SDK" 的第 8.3 节,除了我试图在第 285 页的依赖项中用 OData 版本 2 替换版本 4。当我执行 mvn clean install 时,它错误地告诉我它可以'在 com.sap.cloud.servicesdk.prov 中找不到 odatav2。 (当我改用 odatav4 时,我得到了全新安装。)我想要 OData v2 的原因是版本 4 似乎没有得到 SAPUI5 应用程序的良好支持。
OData V2 配置的设置看起来有点不同。因此,删除您为使用 OData V4 配置所做的所有修改。然后添加以下内容:
将以下依赖项(而不是 odata-v4 依赖项)添加到您的
application/pom.xml
文件中:<dependency> <groupId>com.sap.cloud.servicesdk.prov</groupId> <artifactId>odata2.web</artifactId> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.sap.cloud.servicesdk.prov</groupId> <artifactId>odata2.xsa</artifactId> </dependency> <dependency> <groupId>com.sap.cloud.servicesdk.prov</groupId> <artifactId>odatav2-hybrid</artifactId> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.sap.cloud.servicesdk.prov</groupId> <artifactId>odatav2-prov</artifactId> </dependency>
将以下条目添加到您的
application/src/main/webapp/WEB-INF/web.xml
文件中,将YOUR.PACKAGE
替换为用于搜索您的 OData 端点的包:<servlet> <servlet-name>ODataServlet</servlet-name> <servlet-class>org.apache.olingo.odata2.core.servlet.ODataServlet</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>org.apache.olingo.odata2.service.factory</param-name> <param-value> com.sap.cloud.sdk.service.prov.v2.rt.core.CloudSDKODataServiceFactory </param-value> </init-param> <init-param> <param-name>org.apache.olingo.odata2.path.split</param-name> <param-value>1</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>ODataServlet</servlet-name> <url-pattern>/odata/v2/*</url-pattern> </servlet-mapping> <context-param> <param-name>package</param-name> <param-value>YOUR.PACKAGE</param-value> </context-param> <listener> <listener-class> com.sap.cloud.sdk.service.prov.v2.rt.core.web.ServletListener </listener-class> </listener>
- 将 OData V2 edmx 文件添加到
application/src/main/resources/edmx
目录。
这些步骤应该可以启动您的 OData V2 配置服务并 运行。