当前位置: 首页 > 知识库问答 >
问题:

使用apache camal和CFX时调用web服务中的特定方法

丌官晔
2023-03-14

我正在使用Apache Camel和CXF Spring配置作为endpoint如何调用特定方法。即,如果 wsdl 定义了我需要向站点公开 10 个 cxfEndpoint 的 10 个方法,或者可以通过调用以某种方式对其进行参数化?如何在该服务中插入“方法名称”?

 <cxf:cxfEndpoint id="serviceEndpoint" address="http://localhost:9000/SoapContext/SoapPort"
        wsdlURL="testutils/hello_world.wsdl"
        serviceClass="org.apache.hello_world_soap_http.Greeter"
        endpointName="s:SoapPort"
        serviceName="s:SOAPService"
    xmlns:s="http://apache.org/hello_world_soap_http" />

共有1个答案

太叔正文
2023-03-14

因此,当您创建一个包含5个操作的WSDL时,这5个操作将在您运行CXF中的WSDL2JAVA工具时公开。

假设我有一个包含 2 个操作的 WSDL,如下所示:

  1. 获取客户端
  2. 列表客户端

在camel中,当我将此路由作为camel消费者公开时,我可以通过检查消息上的headers.operationName属性来查看执行了哪个操作。

例如,当用户执行Get客户端操作时,headers.operationName将等于字符串"Get客户端"

因此,我可以创建如下路由来处理不同的操作:

    <from uri="cxf:bean:AccountsService?dataFormat=POJO"/>
    <doTry>
        <choice>
            <when>
                <simple>${headers.operationName} == 'GetClient'</simple>
                <bean ref="GetClientBean"/>
            </when>
            <when>
                <simple>${headers.operationName} == 'ListClient'</simple>
                <bean ref="ListClientBean"/>
            </when>
            <when>
                <simple>${headers.operationName} == 'SomeOtherOperation'</simple>
                <bean ref="SomeOtherBean"/>
            </when>
        </choice>

如果您想限制公开的操作,您可以简单地抛出异常或在您不想公开的操作上构造错误消息。

玩得开心点!

 类似资料:
  • 本文向大家介绍PHP使用NuSOAP调用Web服务的方法,包括了PHP使用NuSOAP调用Web服务的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用NuSOAP调用Web服务的方法。分享给大家供大家参考。具体如下: Steps: 1. Download nusoap library from internet. 2. Pass parameter list in your

  • 我是保险丝骆驼的新手,cxf。 我想调用第三方web服务。我不想使用wsld2java或serviceclass。我有一个wsdl。 下面是进行通用 Web 服务调用的要求 json请求数据- 1.如何将json转换为soaprequest(xml),反之亦然(Marshall格式soapjxab需要jaxb注释类)2.如何在有效负载模式下调用soap。。 任何帮助(链接/示例)将不胜感激。 谢谢

  • 问题内容: 你好,我克服了最初的问题。我是一个完全的androidnoob,这是我的第一个应用程序。我正在Android模拟器上对此进行测试。我尝试在处连接到.NET Web服务。我得到一个。但是它在那里,URL是正确的。我怎样才能让他看到? 这发生在这里: 问题答案: 的类是误导的,因为它会抛出为400或以上的任何HTTP错误代码。 因此,它不一定是错误的URL(404),它可能是400(错误请

  • 现在请帮助,我想通过SOAP调用一个api,并使用httpclient 4.5.5

  • 我希望通过java将soap web服务与此wsdl一起使用: https://sadad.shaparak.ir/services/MerchantUtility.asmx?wsdl 但当我运行某些方法时会发生此错误: 访问WSDL失败:https://sadad.shaparak.ir/services/MerchantUtility.asmx?wsdl.失败的原因是:sun.security

  • 我想从作为web服务使用的cfc中调用cfc。web服务只是向调用者返回一个状态通知,但是我需要启动另一个cfc来启动一些进程,打开一个ftp获取一个文件并将其下载到我们的服务器。目前我得到了这个错误。操作GetFile原因550无法打开文件。详细错误:550无法打开文件。.消息FTP GetFile操作过程中出现错误。打开文件。. 当我从一个url直接调用流程cfc或从另一个页面调用时,它工作正