Skip to content

ClassCastException in RSocket auto-configuration when Jackson XML is present #17425

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
bxvs888 opened this issue Jul 4, 2019 · 1 comment
Closed
Assignees
Labels
type: bug A general bug
Milestone

Comments

@bxvs888
Copy link

bxvs888 commented Jul 4, 2019

See this case ,spring boot env
spring boot 2.2.0 M4 ,
spring framework 5.2.0.M3
JDK 11.0.3
this error :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rSocketStrategies' defined in class path resource [org/springframework/boot/autoconfigure/rsocket/RSocketStrategiesAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.messaging.rsocket.RSocketStrategies]: Factory method 'rSocketStrategies' threw exception; nested exception is java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app')
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:638) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:618) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1326) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1165) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:870) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) ~[spring-context-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:748) [spring-boot-2.2.0.M4.jar:2.2.0.M4]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.2.0.M4.jar:2.2.0.M4]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-2.2.0.M4.jar:2.2.0.M4]
	at com.apsaras.platform.container.boot.PlatformJavaApplication.run(PlatformJavaApplication.java:69) [apsaras-bootstarp-3.3.5-SNAPSHOT.jar:3.3.5-SNAPSHOT]
	at com.apsaras.platform.container.boot.PlatformJavaApplication.start(PlatformJavaApplication.java:48) [apsaras-bootstarp-3.3.5-SNAPSHOT.jar:3.3.5-SNAPSHOT]
	at com.apsaras.platform.container.boot.PlatformJavaApplication.main(PlatformJavaApplication.java:90) [apsaras-bootstarp-3.3.5-SNAPSHOT.jar:3.3.5-SNAPSHOT]
	at TestExecutorApp.main(TestExecutorApp.java:10) [apsaras-job-executor-sample/:?]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.messaging.rsocket.RSocketStrategies]: Factory method 'rSocketStrategies' threw exception; nested exception is java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app')
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:633) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	... 19 more
Caused by: java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app')
	at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer.create(Jackson2ObjectMapperBuilder.java:866) ~[spring-web-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:628) ~[spring-web-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration$JacksonCborStrategyConfiguration.lambda$jacksonCborRSocketStrategyCustomizer$0(RSocketStrategiesAutoConfiguration.java:81) ~[spring-boot-autoconfigure-2.2.0.M4.jar:2.2.0.M4]
	at org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration.lambda$rSocketStrategies$0(RSocketStrategiesAutoConfiguration.java:63) ~[spring-boot-autoconfigure-2.2.0.M4.jar:2.2.0.M4]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
	at java.util.ArrayList.forEach(ArrayList.java:1540) ~[?:?]
	at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395) ~[?:?]
	at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[?:?]
	at java.util.stream.Sink$ChainedReference.end(Sink.java:258) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
	at org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration.rSocketStrategies(RSocketStrategiesAutoConfiguration.java:63) ~[spring-boot-autoconfigure-2.2.0.M4.jar:2.2.0.M4]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:633) ~[spring-beans-5.2.0.M3.jar:5.2.0.M3]
	... 19 more

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rSocketStrategies' defined in class path resource [org/springframework/boot/autoconfigure/rsocket/RSocketStrategiesAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.messaging.rsocket.RSocketStrategies]: Factory method 'rSocketStrategies' threw exception; nested exception is java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app')
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:638)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:618)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1326)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1165)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:870)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:748)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
	at com.apsaras.platform.container.boot.PlatformJavaApplication.run(PlatformJavaApplication.java:69)
	at com.apsaras.platform.container.boot.PlatformJavaApplication.start(PlatformJavaApplication.java:48)
	at com.apsaras.platform.container.boot.PlatformJavaApplication.main(PlatformJavaApplication.java:90)
	at TestExecutorApp.main(TestExecutorApp.java:10)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.messaging.rsocket.RSocketStrategies]: Factory method 'rSocketStrategies' threw exception; nested exception is java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app')
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:633)
	... 19 more
Caused by: java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app')
	at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder$XmlObjectMapperInitializer.create(Jackson2ObjectMapperBuilder.java:866)
	at org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.build(Jackson2ObjectMapperBuilder.java:628)
	at org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration$JacksonCborStrategyConfiguration.lambda$jacksonCborRSocketStrategyCustomizer$0(RSocketStrategiesAutoConfiguration.java:81)
	at org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration.lambda$rSocketStrategies$0(RSocketStrategiesAutoConfiguration.java:63)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
	at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration.rSocketStrategies(RSocketStrategiesAutoConfiguration.java:63)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 20 more
@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Jul 4, 2019
@wilkinsona
Copy link
Member

Thanks for the report. I can reproduce this with dependencies on org.springframework.boot:spring-boot-starter-rsocket and com.fasterxml.jackson.dataformat:jackson-dataformat-xml. Can you please confirm that you have the same dependencies?

@wilkinsona wilkinsona added the status: waiting-for-feedback We need additional information before we can continue label Jul 4, 2019
@bclozel bclozel added type: bug A general bug and removed status: waiting-for-feedback We need additional information before we can continue status: waiting-for-triage An issue we've not yet triaged labels Jul 9, 2019
@bclozel bclozel self-assigned this Jul 9, 2019
@bclozel bclozel added this to the 2.2.0.M5 milestone Jul 9, 2019
@bclozel bclozel changed the title Caused by: java.lang.ClassCastException: class com.fasterxml.jackson.dataformat.cbor.CBORFactory cannot be cast to class com.fasterxml.jackson.dataformat.xml.XmlFactory (com.fasterxml.jackson.dataformat.cbor.CBORFactory and com.fasterxml.jackson.dataformat.xml.XmlFactory are in unnamed module of loader 'app') ClassCastException in RSocket auto-configuration when Jackson XML is present Jul 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A general bug
Projects
None yet
Development

No branches or pull requests

4 participants