fastjson1.2.28版本与spring4.3.3.RELAESE版本不兼容

Created on 15 Mar 2017  ·  11Comments  ·  Source: alibaba/fastjson

java.lang.RuntimeException: Spring context 启动失败.
at com.frs.framework.listener.StartupListener.contextInitialized(StartupListener.java:44)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'fastJsonpResponseBodyAdvice' defined in URL [jar:file:/D:/Users/andrew.huang/.m2/repository/com/alibaba/fastjson/1.2.28/fastjson-1.2.28.jar!/com/alibaba/fastjson/support/spring/FastJsonpResponseBodyAdvice.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [java.lang.String[]]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1051)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
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:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:751)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at com.frs.framework.listener.StartupListener.contextInitialized(StartupListener.java:41)
... 9 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [java.lang.String[]]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1463)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1094)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1056)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
... 25 more

Most helpful comment

之前我也遇到类似问题了,你看一下Springmvc配置文件里:
<context:component-scan base-package="com.XXXXXXX"/>
这里是不是只指定到扫描com文件夹了(或者类似的原因)
后面精确到你自己的项目名文件路径就好了

All 11 comments

fastjson 1.2.28版本修复了安全漏洞,但是在spring4.3.3.REALEASE版本下初始化spring容器时候会报错,导致项目无法正常启动,比较急,麻烦看一下
@wenshao @VictorZeng

能否钉钉联系我,我提供版本给你验证,验证通过之后明天发布新版本

刚刚验证了没问题 @yue060904 能启动

4.3.3.RELEASE
1.7.4
1.2.28
1.7.6
1.1.7
9.4.1.v20170120

spring4.34 fastson1.2.28仍然报错,fastson1.2.24也是,换成1.2.17就好了

Error creating bean with name 'fastJsonpResponseBodyAdvice' defined in URL [jar:file:/E:/java/tomcat7/webapps/WeiXinOpen/WEB-INF/lib/fastjson-1.2.28.jar!/com/alibaba/fastjson/support/spring/FastJsonpResponseBodyAdvice.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.String[]' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

之前我也遇到类似问题了,你看一下Springmvc配置文件里:
<context:component-scan base-package="com.XXXXXXX"/>
这里是不是只指定到扫描com文件夹了(或者类似的原因)
后面精确到你自己的项目名文件路径就好了

额,确实把注解扫描路径在com后再加一层就可以了,好奇为什么会出现这个问题

原因大概是因为
com/alibaba/fastjson/support/spring/FastJsonpResponseBodyAdvice.class
这个文件也被扫描到了,而springmvc的配置文件里又没有对它需要的参数进行配置.
作者说会修复这个问题的,修复之前就写细一点吧
(后来我觉得还是应该写的精确一点,搞不好再引入什么别的第三方包的时候又出什么问题...)

什么时候修复啊,我们现在也遇到这个问题了

同样遇到了这个问题,原因是只写了

已解决

已经解决了,我也是component-scan上加多一层扫描面就可以了,原因是fastJsonpResponseBodyAdvice这个类上面会有spring的bean标签,在com层次会去扫描这个类初始化成spring的beanDefinition注册到spring的ioc容器里面,但是因为需要在spring配置中配置另外的文件这个bean才能被正常初始化,所以导致报错,谢谢各位大神的支持~

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pkaq picture pkaq  ·  4Comments

Ccixyj picture Ccixyj  ·  4Comments

luckydzp picture luckydzp  ·  4Comments

liubailin2017 picture liubailin2017  ·  4Comments

gongxyu picture gongxyu  ·  3Comments