使用cxf-rs发布服务启动报错:org.springframework.beans.factory.NoSuchBeanDefinitionException
2018-02-26 14:40
621 查看
一.背景 使用cxf+spring发布服务时候,启动服务器报错:严重: StandardWrapper.Throwable
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' is defined at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1168) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:281) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:962) at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:80) at org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:76) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) at org.apache.catalina.startup.Embedded.start(Embedded.java:825) at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558) at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)二:解决方案: 这个错误的最主要原因是配置文件不正确,所以应该检查applicationContext.xml和web.xml 1.cxf配置文件是否正确且是否被spring扫描到,例如: 最基本的配置写法:<jaxrs:server id="customerService" address="/customerService"><jaxrs:serviceBeans><bean class="cn.itcast.crm.service.impl.CustomerServiceImpl" /></jaxrs:serviceBeans><jaxrs:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean></jaxrs:inInterceptors><jaxrs:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean></jaxrs:outInterceptors></jaxrs:server>2.检查web.xml中是否书写正确,调试的时候可检查是否需要写<import resource="classpath*:META-INF/cxf/cxf.xml" />
是否正确书写了:
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>
<!-- 引cxf的一些核心配置 --><import resource="classpath:META-INF/cxf/cxf.xml" /><import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /><import resource="classpath:META-INF/cxf/cxf-servlet.xml" />ps:附加其他猿友的解决方案: http://bbs.csdn.net/topics/390237591 https://www.cnblogs.com/zr520/p/5118627.html http://blog.csdn.net/u012849872/article/details/51094563
相关文章推荐
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' is defined
- Spring的Annotation使用注意(org.springframework.beans.factory.NoSuchBeanDefinitionException)
- cxf之org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' available
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory' is d
- 错误中学习--spring框架 org.springframework.beans.factory.NoSuchBeanDefinitionException
- java-org.springframework.beans.factory.NoSuchBeanDefinitionException
- Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException
- Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean nam
- nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.hiber
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined
- Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'ExtractAbstractServiceHandler' is defined
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager'
- org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xx' is defined