aws 2.0 > step function > java.lang.NoClassDefFoundError: software/amazon/awssdk/core/runtime/transform/Unmarshaller

aws 2.0 > step function > java.lang.NoClassDefFoundError: software/amazon/awssdk/core/runtime/transform/Unmarshaller

出现以下错误,

java.lang.NoClassDefFoundError: software/amazon/awssdk/core/runtime/transform/Unmarshaller

当执行下面的代码时,

@Test
public void testStateFunction() {

    SfnClient sfnClient = SfnClient.create();
    System.out.println(sfnClient);

}

在 build.gradle

中定义了以下依赖项
dependencies {
    implementation platform('software.amazon.awssdk:bom:2.17.29')

//    implementation group: 'software.amazon.awssdk', name: 'core', version: '2.17.29', ext: 'pom'
        implementation 'software.amazon.awssdk:core:2.17.29'
//    implementation 'software.amazon.awssdk:aws-core:2.17.29'
//    implementation 'software.amazon.awssdk:sdk-core:2.17.29'
    implementation 'software.amazon.awssdk:s3'
    implementation 'software.amazon.awssdk:stepfunctions:2.0.0-preview-11'
    implementation 'com.amazonaws:aws-lambda-java-core:1.2.1'
    implementation 'com.amazonaws:aws-lambda-java-events:3.10.0'
    runtimeOnly 'com.amazonaws:aws-lambda-java-log4j2:1.2.0'

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

    implementation 'com.google.code.gson:gson:2.8.8'
    implementation 'commons-io:commons-io:2.6'
    implementation 'org.apache.logging.log4j:log4j-api:2.13.0'
    implementation 'org.apache.logging.log4j:log4j-core:2.13.0'
    runtimeOnly 'org.apache.logging.log4j:log4j-slf4j18-impl:2.13.0'

    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
}

试了很多网上搜索,还不能解决。

从 InteliJ 左侧菜单 Gradle 库中,当我尝试展开时 sdk-core,无法在任何罐子中找到 class software/amazon/awssdk/core/runtime/transform/Unmarshaller。

您似乎正在尝试使用适用于 Java V2 的 AWS 开发工具包来使用 AWS Step Functions。要使此用法正常运行,您可以遵循此 AWS 端到端示例,该示例将引导您完成此用例,并且您将使用 AWS Step Functions 创建以下工作流程。

遵循此文档:

Create AWS serverless workflows by using the AWS SDK for Java

它使用 Maven - 但会向您显示所需的依赖项(一旦您使用 Maven 使其工作,然后将依赖项移植到 gradle)。

进一步调查发现

正确的最新依赖项是

    implementation 'software.amazon.awssdk:sfn:2.17.29'

我最初尝试的下面的似乎已经过时,因此它不适用于不存在的 AWS 2.0 核心 jar /Unmarshaller。

参考:https://github.com/aws/aws-sdk-java-v2/issues/2094 谢谢

implementation 'software.amazon.awssdk:stepfunctions:2.0.0-preview-11'