一尘不染

没有定义名为“ cxf”的bean

tomcat

我正在尝试使用tomcat 6.0.32,cxf 2.4.1设置一个简单的Restful
Web应用程序。每当我发出任何呼叫时,都会返回一个异常“未定义名为’cxf’的bean”,其中cxf是我的总线。

查看应用程序日志,可以看到cxf实例已创建并缓存。

=============== APP LOG BEGIN ======================

910 DEBUG-创建单例bean’cxf’的共享实例

910调试-创建bean’cxf’的实例

1018调试-急速缓存bean’cxf’以允许解析潜在的循环引用

1031 DEBUG-返回尚未完全初始化的单例bean’cxf’的急切缓存实例-循环引用的结果

1034 DEBUG-完成创建bean’cxf’的实例

1035 DEBUG-
返回单例bean’org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor’的缓存实例

1035 DEBUG-返回单例bean’org.apache.cxf.bus.spring.Jsr250BeanPostProcessor’的缓存实例

1035 DEBUG-返回单例bean’org.apache.cxf.bus.spring.BusExtensionPostProcessor’的缓存实例

1035 DEBUG-创建单例bean’连接’的共享实例

1035 DEBUG-创建bean’connection’的实例

1035 DEBUG-过度缓存bean“连接”以解决潜在的循环引用

1052 DEBUG-完成创建bean’connection’实例

1052 DEBUG-创建单例bean’connectionService’的共享实例

1052 DEBUG-创建bean’connectionService’的实例

1053 DEBUG-过度缓存bean’connectionService’以允许解析潜在的循环引用

1053 DEBUG-返回单例bean’连接’的缓存实例

1053 DEBUG-返回单例bean’cxf’的缓存实例

1121 DEBUG-在名称为“ connectionService”的bean上调用init方法“ create”

1356 DEBUG-完成创建bean’connectionService’的实例

1384 DEBUG fecycleProcessor,名称为“
lifecycleProcessor”:使用默认值[org.springframework.context.support.DefaultLifecycleProcessor@45d1c3cd]

1385 DEBUG-返回单例bean’lifecycleProcessor’的缓存实例

1387 DEBUG-返回单例bean’cxf’的缓存实例

1387 DEBUG-返回单例bean’cxf’的缓存实例

1388 DEBUG-在名称为“ connectionService”的bean上调用init方法“ create”

1391 DEBUG-完成创建bean’connectionService’的实例

1391 DEBUG-
无法找到名称为’lifecycleProcessor’的LifecycleProcessor:使用默认[org.springframework.context.support.DefaultLifecycleProcessor@2c3299f6]

1391 DEBUG-返回单例bean’lifecycleProcessor’的缓存实例

1391 DEBUG-
将根WebApplicationContext发布为ServletContext属性,名称为[org.springframework.web.context.WebApplicationContext.ROOT]

1391 INFO-根WebApplicationContext:初始化在1390毫秒内完成

=============== APP LOG END =======================

但是,当一个请求进入时,它总是说它找不到该bean。

====================== Tomcat(本地主机)日志开始====================

INFO:初始化Spring根WebApplicationContext

2011年7月14日,上午8:57:03 org.apache.catalina.core.ApplicationContext日志

严重:StandardWrapper.Throwable

org.springframework.beans.factory.NoSuchBeanDefinitionException:未定义名为“
cxf”的bean

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:527)

at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1083)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:274)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1079)

at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:58)

at org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:54)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)

at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)

at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)

at java.lang.Thread.run(Thread.java:662)

====================== Tomcat(本地主机)日志结尾====================

我能想到的唯一一件事是,该bean插入了一个上下文,并且正在从另一个上下文中检索,但是无法对此进行验证或找到解决方法。任何帮助将不胜感激。


阅读 373

收藏
2020-06-16

共1个答案

一尘不染

从错误日志中,我假设您使用Spring,如果这样,则需要在Spring Context XML中添加以下行:

<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-xml.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

希望这可以帮助。

2020-06-16