首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring 16上Spring R2DBC应用程序的本地映像在不受支持的方法上失败

Spring 16上Spring R2DBC应用程序的本地映像在不受支持的方法上失败
EN

Stack Overflow用户
提问于 2021-09-24 04:26:27
回答 1查看 335关注 0票数 0

我有一个构建在org.springframework.boot:spring-boot-starter-parent版本2.5.4-SNAPSHOT和一些派生依赖项之上的简单应用程序:

  • org.springframework.boot:spring-boot-starter-data-r2dbc
  • org.springframework.boot:spring-boot-starter-webflux
  • org.springframework.boot:spring-boot-starter-actuator
  • io.r2dbc:r2dbc-postgresql

我使用org.springframework.experimental:spring-native版本0.10.3启用Spring使用以下插件:

代码语言:javascript
复制
<properties>
    <java.version>16</java.version>
</properties>
代码语言:javascript
复制
<!-- native-docker profile -->
<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <image>
            <builder>paketobuildpacks/builder:tiny</builder>
            <env>
                <BP_BOOT_NATIVE_IMAGE>1</BP_BOOT_NATIVE_IMAGE>
            </env>
        </image>
        <fork>false</fork>
        <jvmArguments>--enable-preview</jvmArguments>
    </configuration>
</plugin>

我使用./mvnw.cmd spring-boot:build-image -Pnative-docker -DskipTests构建映像,我确信Java16是正确引导的,然后映像就存在了(为什么它已经41岁了,我不知道)。

代码语言:javascript
复制
[INFO]     [creator]     Paketo GraalVM Buildpack 6.4.2
[INFO]     [creator]       https://github.com/paketo-buildpacks/graalvm
[INFO]     [creator]       Build Configuration:
[INFO]     [creator]         $BP_JVM_VERSION            16.*           the Java version

$ docker图像存储库标记图像ID创建的大小..。我的应用程序0.0.1-快照9bdb55e635ab 41年前128 41

在使用docker-compose up创建映像之后,我使用Dockerfile启动数据库,然后启动应用程序(正如我以前构建的映像通常使用Dockerfile一起启动一样),引发了以下异常,Spring应用程序不会启动:

代码语言:javascript
复制
myapplication | Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'partyRepository' defined in com.myapplication.repository.MyFirstRepository defined in @EnableR2dbcRepositories declared on R2dbcRepositoriesAutoConfigureRegistrar.EnableR2dbcRepositoriesConfiguration: Invocation of init method failed; nested exception is com.oracle.svm.core.jdk.UnsupportedFeatureError: Unsupported method java.lang.Class.isSealed() is reachable: The declaring class of this element has been substituted, but this element is not present in the substitution class
myapplication |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[na:na]
myapplication |     at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[na:na]
myapplication |     at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[na:na]
myapplication |     ... 19 common frames omitted
myapplication | Caused by: com.oracle.svm.core.jdk.UnsupportedFeatureError: Unsupported method java.lang.Class.isSealed() is reachable: The declaring class of this element has been substituted, but this element is not present in the substitution class

我假设R2DBC在某种程度上使用了在Java16中处于启用预览模式的Class#isSealed。如何使它运行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-19 22:08:51

对于这个问题,据报道,在#3870 21.3上可复制的Oracle/Graal项目之后出现了一个bug GraalVM。

这个问题正在等待解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69309560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档