1

我是 Apache Camel 和 CXF 的新手,我正在尝试创建一个路由来查询需要基本身份验证的远程 WS 并指定 SoapAction 标头。我用 spring-ws 组件实现了它,但我想知道是否可以用 cxf 组件做同样的事情。

我目前的配置是:

路线构建器

from("file:src/test/resources/data?noop=true")
    .to("xquery:transform/search.xquery")
    .to("cxf:-----")
    .to("log:TestApp");

我读过一些关于管道的东西,但我不知道如何在我当前的骆驼上下文中配置它。

骆驼上下文
<camel:camelContext xmlns="http://camel.apache.org/schema/spring">
    <package>my.package</package>
</camel:camelContext>

提前致谢

4

1 回答 1

2

您可以使用 Camel HTTP 组件完成此操作:

http://server.com?authMethod=Basic&authUsername=user&authPassword=password

但是,您可能希望利用 CXF 提供的功能。

您可以在骆驼中设置一个 CXF bean,然后设置一个 HTTP 管道以提供基本身份验证:

http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport%28includingSSLsupport%29-BasicAuthentication

<conduit name="https://localhost:.*""
   xmlns:sec="http://cxf.apache.org/configuration/security"
   xmlns="http://cxf.apache.org/transports/http/configuration">
   <authorization>
      <sec:UserName>myuser</sec:UserName>
      <sec:Password>mypasswd</sec:Password>
      <sec:AuthorizationType>Basic</sec:AuthorizationType>
   </authorization>
 </conduit>

HTTP Conduit 使用“name”参数链接到 Camel CXF bean。您可以像我上面那样将其设置为 URL,或者查看文档以将其设置为与您的服务匹配的 URI。

谢谢,约格什

于 2012-12-12T04:44:04.673 回答