不想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 问题解决了 希望对后来人有点帮助