Camel CXF抛出AssertionBuilderRegistryImpl异常

时间:2013-02-01 11:28:57

标签: cxf apache-camel

无法弄清楚这是怎么回事 - 试图建立一条路线,只看到cxf连接到肥皂网服务(我不关心实际数据,也不希望数据真正'工作' ',但它不断抛出一个我不明白的例外:

我想知道我是否正确配置它。 我当时认为它可能是一个丢失的jar,但当我试图引入其他Jars时,它会导致依赖冲突

我正在使用maven依赖“camel-cxf”加载我的所有jar配置

“原因:org.apache.cxf.bus.extension.ExtensionException:无法加载扩展类org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl。”

确切的错误是

“无法为端点创建生产者:端点[cxf:// http://wsf.cdyne.com/WeatherWS/Weather.asmx?dataFormat = MESSAGE& portName = WeatherSoap& serviceClass = prototypes.CxfExample%24GetWeatherInformationSoapIn& serviceName = Weather& wsdlURL = http%3A%2F%2Fwsf.cdyne.com%2FWeatherWS%2FWeather.asmx%3FWSDL]。原因:org.apache.cxf.bus.extension.ExtensionException:无法加载扩展类org.apache.cxf .ws.policy.AssertionBuilderRegistryImpl“。

我用来引起这个的代码是

        camel.addComponent( "cxf", new CxfComponent() );

        camel.addRoutes( new RouteBuilder() {

            @Override
            public void configure() throws Exception {
                from( "timer://sometimer?delay=1s")
                .to( "cxf://http://wsf.cdyne.com/WeatherWS/Weather.asmx"
                     +"?wsdlURL=http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"
                     +"&dataFormat=MESSAGE"
                     +"&serviceClass=prototypes.CxfExample$GetWeatherInformationSoapIn"
                     +"&serviceName=Weather"
                     +"&portName=WeatherSoap"


                   );
            }
        });
        camel.start();
        Thread.sleep( 10000 );
        camel.stop();

1 个答案:

答案 0 :(得分:3)

我想我已'解决了' -

mvn:camel-cfx依赖还不够

你也需要mvn:neethi依赖

AssertationBuildImpl类扩展自mvn:camel-cfx的jar-set中未包含的类,这使得AssertationBuildImpl在ide中列为已知类,但在运行时不会加载类< / p> 通过分析第三方的源代码来追踪这是一个可怕的问题