【问题标题】:running graals native spring cloud function example运行graals原生spring cloud函数示例
【发布时间】:2020-09-08 21:03:28
【问题描述】:

我正在尝试在 spring-graals 中运行 aws 函数示例,“java”版本运行良好,但是当我测试“native”版本时,我在控制台中看到以下错误。

Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationContextInitializer : org.springframework.cloud.function.adapter.aws.CustomRuntimeInitializer
    at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:445)
    at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:427)
    at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:420)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:272)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:253)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
    at com.example.demo.serverless.ServerlessApplication.main(ServerlessApplication.java:22)
Caused by: java.lang.NoSuchMethodException: org.springframework.cloud.function.adapter.aws.CustomRuntimeInitializer.<init>()
    at java.lang.Class.getConstructor0(DynamicHub.java:3082)
    at java.lang.Class.getDeclaredConstructor(DynamicHub.java:2178)
    at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:440)
    ... 7 more

示例将步骤记录到 output.txt 中,我在其中看到以下几行。

WARNING: Could not register reflection metadata for org.springframework.cloud.function.adapter.aws.CustomRuntimeInitializer. Reason: java.lang.NoClassDefFoundError: org/springframework/cloud/function/web/source/DestinationResolver.

spring-graals-native 版本是 0.70.BUILD-SNAPSHOT.jar

spring-cloud-function 版本是 3.1.0-SNAPSHOT

pom文件可以是found here

此外,在 aws 控制台中,我只能使用 FunctionInvoker 类型的处理程序进行测试,而不能使用 SpringBootApiGatewayRequestHandler

【问题讨论】:

    标签: spring-boot spring-cloud-aws graalvm-native-image spring-cloud-function


    【解决方案1】:

    需要添加以下依赖才能成功编译原生镜像。

    <!-- Required by DestinationResolver -->
           <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-webflux</artifactId>
            </dependency>
    
    <!-- "spring-cloud-function-adapter-aws" coupled with webFlux-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-function-web</artifactId>
            </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 2023-02-13
      • 2016-10-01
      相关资源
      最近更新 更多