Noura
Noura

Reputation: 59

An illegal reflective access operation has occurred while setting up spring xd

i was following the guide Spring XD Guide to setup spring xd on window 7. When i tried to start the runtime and the XD shell and entered ./xd-singlenode, it gave me the following warnings and errors:

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

Notes:

  1. i am using windows 7 command line prompt.
  2. i appended java 8 and java 9 bin directories to the path in system settings.

  3. i searched for similar problems but with no avail like what is an illegal reflective access , An illegal reflective access operation has occurred Apache POI

so what should i do or what am i missing ??

I managed to solve it by setting JAVA_HOME user variable to be path to the jdk8 folder (eg. C:\Program Files\Java\jdk1.8) because some of spring dependencies aren't supported in jdk9.

Upvotes: 3

Views: 6771

Answers (1)

Naman
Naman

Reputation: 31878

The ideal suggestion here would be to trust the developers of the library and migrate to Cloud Data Flow as mentioned

NOTE: This project has been in EOL/EOS status since July 2017. Please review Spring Cloud Data Flow and the ecosystem-of-projects for further research, exploration, and use-case implementation.

To help you with that, here is a guide on migrating-from-spring-xd-to-spring-data-cloud-flow.


On the other hand, to elaborate the details of the logs you've shared -

  1. 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

    is a JDK9+ way of warning you about illegal reflective access, and it couldn't have read anything more appropriate than "consider reporting this to the maintainers of 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]

    is the actual cause of failure for your application which is due to lack of compatibility fixes in spring-xd. Though spring-data-cloud-flow doesn't seem to have solved it completely either yet the state at which it is, can still be made to work.

Upvotes: 1

Related Questions