无法让cxf和cxf-client同时使用grails

时间:2014-10-20 16:17:15

标签: apache servlets grails cxf cxf-client

当我同时使用cxf和cxf-client时,我遇到了问题。 cxf表示无法找到任何服务。 当我评论cxf-client的配置时,cxf会找到服务。

servlet的配置是标准配置。 由EU TIN服务构成的客户端配置。

这两个插件可以单独找到但不能一起找到。 有人找到解决这个问题的方法吗?

使用grails版本2.3.7 Cxf版本1.1.4 cxf-client 1.6.1

1 个答案:

答案 0 :(得分:0)

我设法通过稍微修改CXF客户端插件来解决同样的问题。在WebServiceClientFactoryImpl中修改创建JaxWSProxyFactoryBean,如下所示:

Bus bus = Holders.grailsApplication.mainContext.getBean("cxf") as Bus
JaxWsProxyFactoryBean clientProxyFactory = new JaxWsProxyFactoryBean(serviceClass: serviceInterface,
            address: serviceEndpointAddress, bus: bus)

CXF插件创建了' cxf' bean的类型为org.apache.cxf.bus.spring.SpringBus。 CXF客户端创建(默认情况下)另一条似乎打破CXF Web服务的总线。通过在CXF客户端中使用相同的总线,问题得以解决。