一个非法的反射访问操作在设置Spring XD时发生了。

3

我正在按照Spring XD指南在Windows 7上安装Spring XD。当我尝试启动运行时和XD shell并输入./xd-singlenode时,它给出了以下警告和错误:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/C:/Users/user/SpringXD/spring-xd-1.3.2.RELEASE/xd/lib/groovy-all-2.4.4.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass$3$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
????-??-??T??:??:??+0200 1.3.2.RELEASE INFO main singlenode.SingleNodeApplication - Starting SingleNodeApplication v1.3.2.RELEASE on user-PC with PID 4604 (C:\Users\user\SpringXD\spring-xd-1.3.2.RELEASE\xd\lib\spring-xd-dirt-1.3.2.RELEASE.jar started by user in C:\Users\user)
????-??-??T??:??:??+0200 1.3.2.RELEASE INFO main singlenode.SingleNodeApplication - Started SingleNodeApplication in 3.307 seconds (JVM running for 9.037)
????-??-??T??:??:??+0200 1.3.2.RELEASE INFO main singlenode.SingleNodeApplication - Starting SingleNodeApplication v1.3.2.RELEASE on user-PC with PID 4604 (C:\Users\user\SpringXD\spring-xd-1.3.2.RELEASE\xd\lib\spring-xd-dirt-1.3.2.RELEASE.jar started by user in C:\Users\user)
????-??-??T??:??:??+0200 1.3.2.RELEASE INFO main singlenode.SingleNodeApplication - Started SingleNodeApplication in 1.17 seconds (JVM running for 10.259)
????-??-??T??:??:??+0200 1.3.2.RELEASE WARN main annotation.AnnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor': Invocation of init method failed; nested exception is javax.validation.ValidationException: Unable to instantiate Configuration.
????-??-??T??:??:??+0200 1.3.2.RELEASE ERROR main boot.SpringApplication - Application startup failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor': Invocation of init method failed; nested exception is javax.validation.ValidationException: Unable to instantiate Configuration.
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:207) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:687) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:523) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139) [spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:129) [spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:129) [spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.xd.dirt.server.singlenode.SingleNodeApplication.run(SingleNodeApplication.java:83) [spring-xd-dirt-1.3.2.RELEASE.jar:1.3.2.RELEASE]
        at org.springframework.xd.dirt.server.singlenode.SingleNodeApplication.main(SingleNodeApplication.java:52) [spring-xd-dirt-1.3.2.RELEASE.jar:1.3.2.RELEASE]
Caused by: javax.validation.ValidationException: Unable to instantiate Configuration.
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:279) ~[validation-api-1.1.0.Final.jar:na]
        at org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:223) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$Jsr303ValidatorFactory.run(ConfigurationPropertiesBindingPostProcessor.java:381) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.afterPropertiesSet(ConfigurationPropertiesBindingPostProcessor.java:174) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
        ... 16 common frames omitted
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36) ~[hibernate-validator-5.2.1.Final.jar:5.2.1.Final]
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:119) ~[hibernate-validator-5.2.1.Final.jar:5.2.1.Final]
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:95) ~[hibernate-validator-5.2.1.Final.jar:5.2.1.Final]
        at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:31) ~[hibernate-validator-5.2.1.Final.jar:5.2.1.Final]
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276) ~[validation-api-1.1.0.Final.jar:na]
        ... 21 common frames omitted
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor': Invocation of init method failed; nested exception is javax.validation.ValidationException: Unable to instantiate Configuration.
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:207)
        at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:687)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:523)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:139)
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:129)
        at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:129)
        at org.springframework.xd.dirt.server.singlenode.SingleNodeApplication.run(SingleNodeApplication.java:83)
        at org.springframework.xd.dirt.server.singlenode.SingleNodeApplication.main(SingleNodeApplication.java:52)
Caused by: javax.validation.ValidationException: Unable to instantiate Configuration.
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:279)
        at org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:223)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$Jsr303ValidatorFactory.run(ConfigurationPropertiesBindingPostProcessor.java:381)
        at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.afterPropertiesSet(ConfigurationPropertiesBindingPostProcessor.java:174)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
        ... 16 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:119)
        at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:95)
        at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:31)
        at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)
        ... 21 more

注:

  1. 我正在使用 Windows 7 命令行提示符。
  2. 我在系统设置中附加了 Java 8 和 Java 9 的 bin 目录到路径中。

  3. 我搜索了类似的问题,但没有找到解决方法,例如什么是非法反射访问Apache POI 发生了非法反射访问操作

那么我该怎么做或者我错过了什么?

我通过将 JAVA_HOME 用户变量设置为 jdk8 文件夹的路径 (例如 C:\Program Files\Java\jdk1.8) 来解决它,因为一些 Spring 依赖项不支持 JDK 9。


2
首先,这是一个警告,其次是jre在9版本中抛出该警告。 我将Java 8和Java 9的bin目录附加到系统设置的路径中 - 这意味着什么?为什么两个都要添加? - Eugene
Spring XD不再得到积极维护,已被Spring Cloud Data Flow暂停。 - M. Deinum
1个回答

1

在这里的理想建议是信任库的开发人员并迁移到Cloud Data Flow,如上所述。

注意:该项目自2017年7月起已处于EOL / EOS状态。请查看Spring Cloud Data Flow和生态系统项目以进行进一步的研究,探索和用例实现。

为了帮助您,这里有一个关于从Spring XD迁移到Spring Data Cloud Flow的指南。


另一方面,为了详细说明您分享的日志内容 -
  1. 警告:Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/C:/Users/user/SpringXD/spring-xd-1.3.2.RELEASE/xd/lib/groovy-all-2.4.4.jar) to method java.lang.Object.finalize()

    警告:请考虑向org.codehaus.groovy.reflection.CachedClass$3$1的维护者报告此问题

    这是JDK9+的一种警告方式,用于警示您非法反射访问,而它所读到的最合适的内容莫过于“请考虑向org.codehaus.groovy.reflection.CachedClass的维护者报告此问题”。

  2. Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at org.hibernate.validator.internal.util.Version.getJavaRelease(Version.java:36) ~[hibernate-validator-5.2.1.Final.jar:5.2.1.Final]

    这是您应用程序失败的实际原因,由于spring-xd中缺乏兼容性修复。虽然spring-data-cloud-flow似乎也没有完全解决它,但仍可以使其正常工作


谢谢,我通过设置正确的JDK 8值来解决了它,即JAVA_HOME变量。 - Noura

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接