You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Backbase教程中消费OpenAPI规范遇编译错误求助

问题描述
  • 学习Backbase Academy《Backbase后端基础课程 - Service SDK与直接集成服务》章节时,消费OpenAPI规范出现编译错误:exchange-rate-service编译失败,找不到@interface Schema的requiredMode()方法
  • 官方GitHub示例项目也出现同类问题:messaging-api执行mvn clean install成功,但messaging-service执行该命令时,ErrorItem.java中找不到Schema类

spec项目pom.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.backbase.buildingblocks</groupId>
        <artifactId>backbase-openapi-spec-starter-parent</artifactId>
        <version>11.3.0</version>
    </parent>

    <groupId>com.backbase.training</groupId>
    <artifactId>exchange-rate-specification</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>Backbase :: Exchange Rate Specification</name>

    <properties>
        <!-- plugin versions -->
        <boat-maven-plugin.version>0.4.0</boat-maven-plugin.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>com.backbase.oss</groupId>
                <artifactId>boat-maven-plugin</artifactId>
                <version>${boat-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <id>boat-validation</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>validate</goal>
                        </goals>
                        <configuration>
                            <input>${project.basedir}/src/main/resources/openapi.yaml</input>
                            <failOnWarning>true</failOnWarning>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
解决方案

这个问题根源是Boat Maven插件生成的代码依赖Jackson 2.13+版本的Schema注解(新增了requiredMode方法),但你用的Backbase starter parent 11.3.0依赖的Jackson版本较低,导致编译时找不到对应方法。可按以下步骤解决:

  • 升级Backbase starter parent版本:把backbase-openapi-spec-starter-parent的版本从11.3.0升级到12.0.0及以上版本(该版本适配了更高版本的Jackson)
  • 同步升级Boat插件版本:将boat-maven-plugin.version调整为0.10.0及以上,确保插件和starter版本匹配
  • 强制指定Jackson版本(备选方案):如果暂时无法升级starter parent,可在项目<properties>中强制指定Jackson版本为2.13.x或更高:
<properties>
    <jackson.version>2.13.5</jackson.version>
    <boat-maven-plugin.version>0.10.0</boat-maven-plugin.version>
</properties>
  • 补全API模块依赖:在messaging-api或exchange-rate-api项目中,确保引入完整的Jackson注解依赖:
<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
验证修改

修改配置后,依次在spec项目、api项目、service项目执行mvn clean install,确认编译不再出现Schema相关错误。

内容的提问来源于stack exchange,提问作者mohamed amine salah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:00:25