首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义名为'cxf‘的bean

未定义名为'cxf‘的bean
EN

Stack Overflow用户
提问于 2011-07-15 00:34:24
回答 5查看 36K关注 0票数 9

我正在尝试使用tomcat 6.0.32,cxf 2.4.1来设置一个简单的restful web应用程序。每当我发出任何调用时,我都会得到一个异常“没有定义名为' cxf‘的bean”,其中cxf是我的总线。

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

================应用程序日志BEGIN======================

910调试-创建单例bean 'cxf‘的共享实例

910调试-创建bean 'cxf‘的实例

1018调试-急切地缓存bean 'cxf‘以允许解析潜在的循环引用

1031调试-返回尚未完全初始化的单个bean 'cxf‘的急切缓存实例-循环引用的结果

1034调试-已完成创建bean 'cxf‘的实例

1035调试-返回单例bean 'org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor‘的缓存实例

1035调试-返回单例bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor‘的缓存实例

1035调试-返回单例bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor‘的缓存实例

1035调试-创建单例bean 'connection‘的共享实例

1035调试-创建bean 'connection‘的实例

1035调试-急切地缓存bean 'connection‘以允许解析潜在的循环引用

1052调试-已完成创建bean 'connection‘的实例

1052调试-创建单例bean 'connectionService‘的共享实例

1052调试-创建bean 'connectionService‘的实例

1053调试-急切地缓存bean 'connectionService‘以允许解析潜在的循环引用

1053调试-返回单例bean 'connection‘的缓存实例

1053调试-返回单个bean 'cxf‘的缓存实例

1121调试-正在名为“connectionService”的bean上调用初始化方法“create”

1356调试-已完成创建bean 'connectionService‘的实例

1384使用默认org.springframework.context.support.DefaultLifecycleProcessor@45d1c3cd调试名为‘lifecycleProcessor’的fecycleProcessor

1385调试-返回单一实例bean 'lifecycleProcessor‘的缓存实例

1387调试-返回单个bean 'cxf‘的缓存实例

1387调试-返回单个bean 'cxf‘的缓存实例

1388调试-正在名为“connectionService”的bean上调用初始化方法“create”

1391调试-已完成创建bean 'connectionService‘的实例

1391调试-无法找到名为‘LifecycleProcessor’的lifecycleProcessor:使用默认org.springframework.context.support.DefaultLifecycleProcessor@2c3299f6

1391调试-返回单一实例bean 'lifecycleProcessor‘的缓存实例

1391调试-已将根WebApplicationContext发布为名为org.springframework.web.context.WebApplicationContext.ROOT的ServletContext属性

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

================应用程序日志END======================

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

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

信息:初始化Spring根WebApplicationContext

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

严重: StandardWrapper.Throwable

org.springframework.beans.factory.NoSuchBeanDefinitionException:未定义名为'cxf‘的bean

代码语言:javascript
复制
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被插入到一个上下文中,并从另一个上下文中检索,但无法验证或找到绕过它的方法。任何帮助都将不胜感激。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-15 18:37:26

从您的错误日志中,我假设您使用Spring,如果是这样,您将需要向Spring上下文XML添加以下行:

代码语言:javascript
复制
<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"/>

希望这能有所帮助。

票数 24
EN

Stack Overflow用户

发布于 2015-09-14 18:29:47

如果有人需要基于Spring Java的配置来解决这个问题,有两个选择:

您可以使用以下命令将cxf.xml文件导入到Java Config类中:

代码语言:javascript
复制
@ImportResource({ "classpath:META-INF/cxf/cxf.xml" })

或者,您可以使用以下命令在Java配置类中以编程方式定义bean:

代码语言:javascript
复制
@Bean
public SpringBus cxf() {        
    return new SpringBus();
}

CXF + Spring Java配置类example

票数 7
EN

Stack Overflow用户

发布于 2014-03-06 01:45:03

以防其他人来这里使用mulesoft esb。这个问题也存在于这个系统中。要解决此问题,请在流的定义之前添加以下部分。

代码语言:javascript
复制
<spring:beans>
    <spring:import resource="classpath:META-INF/cxf/cxf.xml" />
    <spring:import resource="classpath:META-INF/cxf/cxf-extension-xml.xml" />
    <spring:import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
    <spring:bean class="org.apache.cxf.bus.spring.Jsr250BeanPostProcessor" /> 
    <spring:bean id="classname" name="classname" class="some.implemented.interface.path" />
</spring:beans>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6696785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档