CXF 2.4.2:未找到命名空间 http://schemas.xmlsoap.org/soap/http 的管道启动器 [英] CXF 2.4.2: No conduit initiator was found for the namespace http://schemas.xmlsoap.org/soap/http

查看:28
本文介绍了CXF 2.4.2:未找到命名空间 http://schemas.xmlsoap.org/soap/http 的管道启动器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个从 wsdl 生成的服务客户端.我正在尝试调用远程服务,但收到如下所示的管道启动器错误.我尝试了很多解决方案都没有成功.

I have a service client generated from wsdl. I am trying to call the remote service and I recieve the conduit initiator error seen below. I have tried numerous solutions without success.

我找到了推荐使用 http-jetty 扩展的解决方案(旧帖子).我不相信这对我有意义,因为服务器不在本地运行.

I found solutions (old posts) that recommend using the http-jetty extensions. I do not believe this makes sense for me because the server is not running locally.

我还发现对我有帮助的最接近的配置是一个示例 cxf.xml 文件,其中包含:

I've also found that closest configuration that helps me is an example cxf.xml file that contains:

<bean class="org.apache.cxf.transport.local.LocalTransportFactory"
    lazy-init="false">
    <property name="transportIds">
        <list>
            <value>http://cxf.apache.org/transports/local</value>
            <value>http://cxf.apache.org/transports/http</value>
            <value>http://schemas.xmlsoap.org/soap/http</value>
            <value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
        </list>
    </property>
</bean>

此配置提供了有关如何配置传输工厂并将其绑定到 http://schemas.xmlsoap 的指南.org/soap/http .当我使用 HTTPTransportFactory 尝试此操作时,我收到一个无法初始化的异常(没有此类方法错误).

This configuration provides guidance on how to configure a transport factory and bind it to http://schemas.xmlsoap.org/soap/http . When I try this with the HTTPTransportFactory, I receive an exception that it cannot be initialized (no such method error).

Caused by: org.apache.cxf.BusException: No conduit initiator was found for the namespace http://schemas.xmlsoap.org/soap/http.
    at org.apache.cxf.transport.ConduitInitiatorManagerImpl.getConduitInitiator(ConduitInitiatorManagerImpl.java:112)
    at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:73)
    at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:61)
    at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:708)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:476)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:309)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:261)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:127)

注意事项:此时,我将停止尝试将我的 CXF 客户端升级到 2.4.2 并回退到可用的最旧版本(2.2 系列).这并不理想.

precaution: At this point, I will stop my attempt to upgrade my CXF client to 2.4.2 and fall back to the oldest version that works (2.2 series). This is not ideal.

我想继续升级.关于如何配置 CXF 2.4.X 以便我的客户端专用 HTTP SOAP 配置线路正确的任何建议都会非常有用.

I would like to move forward with the upgrade. Any suggestions regarding how to configure CXF 2.4.X so that my client-only HTTP SOAP configuration wires correctly would be much appriciated.

推荐答案

像老贴推荐的一样,通过添加 cxf-rt-transsports-http-jetty 解决.

Like recommended by the old posts, this is solved by adding cxf-rt-transports-http-jetty into the mix.

这篇关于CXF 2.4.2:未找到命名空间 http://schemas.xmlsoap.org/soap/http 的管道启动器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆