读书人

不料cxf使用默认的springbusfactory的

发布时间: 2013-03-26 09:54:34 作者: rapoo

不想cxf使用默认的springbusfactory的方法

cxf是创建bus的时候会去jar包的META-INF目录下寻找org.apache.cxf.bus.factory这个文件

?

这个文件的内容是

org.apache.cxf.bus.spring.SpringBusFactory
org.springframework.context.ApplicationContext

?

当你的环境是spring的换件 而且classpath下他找到了

org.apache.cxf.bus.spring.SpringBusFactory
org.springframework.context.ApplicationContext这2个类 ,随后他会去调用SpringBusFactory这个类,

这个类他引用了spring的jar中的beans类 如果你的spring版本和他所引入的不一致,那么就会导致 classnotfoundexception,大多数情况 我们不可能为了引入一个cxf而改变公司原有的spring版本结构,而我遇到的问题是对方公司的webservce要求用cxf2.4版本(那里要求的是spring3.0而这个系统比较老是spring1的),因此换了一种方式调用

JaxWsProxyFactoryBean proxyFactory =new JaxWsProxyFactoryBean();

使用JaxWsProxyFactoryBean 的setBus方法

调用busfactory产生cxf自带cxfbusfactory的实例

proxyFactory.setBus(BusFactory.newInstance(BusFactory.DEFAULT_BUS_FACTORY).createBus());

?

ok 问题解决了 希望对后来人有点帮助

读书人网 >软件架构设计

热点推荐