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
fastjson 1.2.28版本修复了安全漏洞,但是在spring4.3.3.REALEASE版本下初始化spring容器时候会报错,导致项目无法正常启动,比较急,麻烦看一下
@wenshao @VictorZeng
能否钉钉联系我,我提供版本给你验证,验证通过之后明天发布新版本
刚刚验证了没问题 @yue060904 能启动
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才能被正常初始化,所以导致报错,谢谢各位大神的支持~
Most helpful comment
之前我也遇到类似问题了,你看一下Springmvc配置文件里:
<context:component-scan base-package="com.XXXXXXX"/>这里是不是只指定到扫描com文件夹了(或者类似的原因)
后面精确到你自己的项目名文件路径就好了