【问题标题】:Generate a Typed OData Client With the OData Generator: Autogenerated code does not compile with SAP library使用 OData 生成器生成类型化 OData 客户端:自动生成的代码无法与 SAP 库一起编译
【发布时间】:2022-01-15 06:30:26
【问题描述】:

我使用 maven 插件生成了代码,但代码无法编译。 https://sap.github.io/cloud-sdk/docs/java/features/odata/generate-typed-odata-v2-and-v4-client-for-java 我正在使用 odata V2 插件

我不知道如何解决这个编译问题:

HttpClientAccessor类型的getHttpClient(String)方法不适用于参数(HttpDestinationProperties)

这是我的 pom 文件。

      <dependency>
          <groupId>com.sap.cloud.s4hana.datamodel</groupId>
          <artifactId>odata-core</artifactId>
          <version>2.28.0</version>           </dependency>


          <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->            <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.22</version>          </dependency>
          <!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->           <dependency>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
          <version>1</version>            </dependency>
com.sap.cloud.sdk.datamodel odata-generator-maven-插件 3.59.0

【问题讨论】:

    标签: java odata sap-cloud-sdk


    【解决方案1】:

    您指的是正确的文档,但版本号是您的 pom 不正确。

    在文档中,它说 3.x.x,截至 10.12.2022 将是 3.59.0

    <plugin>
        <groupId>com.sap.cloud.sdk.datamodel</groupId>
        <artifactId>odata-generator-maven-plugin</artifactId>
        <!-- Please use the latest version here-->
        <version>3.XX.X</version>
        <executions>
            <execution>
                <id>generate-consumption</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <inputDirectory>${project.basedir}/edmx</inputDirectory>
                    <outputDirectory>${project.build.directory}/vdm</outputDirectory>
                    <deleteOutputDirectory>true</deleteOutputDirectory>
                    <packageName>com.mycompany.vdm</packageName>
                    <defaultBasePath>odata/v2/</defaultBasePath>
                    <compileScope>COMPILE</compileScope>
                    <serviceMethodsPerEntitySet>true</serviceMethodsPerEntitySet>
                    <!-- (Optional) You can add a custom copyright header:
                    <copyrightHeader>Copyright (c) this year, my company</copyrightHeader>
    
                    Or use the SAP copyright header:
                    <sapCopyrightHeader>true</sapCopyrightHeader>
                    -->
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    感觉就像您正在使用基于过时和不推荐使用的 SDK 版本的现有项目。您可以尝试生成一个新项目并从那里使用 maven 插件吗?

    您还可以检查您要使用的服务是否在 SAP API Business Hub 上具有预生成的客户端库。检查这个例如https://api.sap.com/api/API_COSTCENTERACTIVITYTYPE_SRV/cloud-sdk/Java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多