Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7828819
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 2, 20262026-06-02T10:29:42+00:00 2026-06-02T10:29:42+00:00

Right now, I have a service called ProcessPayment that calls a billing system. As

  • 0

Right now, I have a service called ProcessPayment that calls a billing system. As we can see here, I want to make a call to another billing service from my payment service. The response from PaymentService has 3 data elements. One of them is required in BillingService.

How do I configure the flow for two or more services in Mule? I have tried various permutations but it just does not work!

Mule-config.xml

 <?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf"
    xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:http="http://www.mulesoft.org/schema/mule/http"
    xmlns:ognl="http://www.mulesoft.org/schema/mule/ognl" xmlns:servlet="http://www.mulesoft.org/schema/mule/servlet"
    xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:pattern="http://www.mulesoft.org/schema/mule/pattern"
    xsi:schemaLocation="
        http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.1/mule.xsd
        http://www.mulesoft.org/schema/mule/pattern http://www.mulesoft.org/schema/mule/pattern/3.1/mule-pattern.xsd
        http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd 
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
        http://www.mulesoft.org/schema/mule/ognl http://www.mulesoft.org/schema/mule/ognl/current/mule-ognl.xsd 
        http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd">

    <!-- <flow name="parallelservices"> <all enableCorrelation="ALWAYS"> <cxf:proxy-service 
        wsdlLocation="classpath:billingservice.wsdl" bindingId="BillingServiceServiceSoapBinding" 
        port="BillingServicePort" service="BillingServiceService" payload="body" 
        namespace="http://com.myapp.demo/" /> </all> </flow> -->

    <flow name="initpayment">
        <inbound-endpoint address="http://localhost:8585/services/processpayment">
            <cxf:proxy-service wsdlLocation="classpath:processpaymentservice.wsdl"
                bindingId="ProcessPaymentServiceServiceSoapBinding" service="ProcessPaymentServiceService"
                payload="body" namespace="http://com.myapp.demo/" />
        </inbound-endpoint>
        <outbound-endpoint address="http://localhost:8081/BillingEntry/services/BillingServicePort">
            <!-- <flow-ref name="parallelservices" /> -->
            <cxf:proxy-client/>
        </outbound-endpoint>
    </flow>

</mule>

Process Payment wsdl

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ProcessPaymentServiceService" targetNamespace="http://processpayment.icp.sf/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://com.myapp.demo/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://processpayment.icp.sf/" schemaLocation="processpaymentservice_schema1.xsd"/>
</schema>
  </wsdl:types>
  <wsdl:message name="processPayment">
    <wsdl:part name="parameters" element="tns:processPayment">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="processPaymentResponse">
    <wsdl:part name="parameters" element="tns:processPaymentResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="IProcessPayment">
    <wsdl:operation name="processPayment">
      <wsdl:input name="processPayment" message="tns:processPayment">
    </wsdl:input>
      <wsdl:output name="processPaymentResponse" message="tns:processPaymentResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ProcessPaymentServiceServiceSoapBinding" type="tns:IProcessPayment">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="processPayment">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="processPayment">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="processPaymentResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ProcessPaymentServiceService">
    <wsdl:port name="ProcessPaymentServicePort" binding="tns:ProcessPaymentServiceServiceSoapBinding">
      <soap:address location="http://localhost:8081/ProcessPayment/services/ProcessPaymentServicePort"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Billing Service wsdl

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="BillingServiceService" targetNamespace="http://com.myapp.demo2/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://billing.icp.sf/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://billing.icp.sf/" schemaLocation="billingservice_schema1.xsd"/>
</schema>
  </wsdl:types>
  <wsdl:message name="billingEntryResponse">
    <wsdl:part name="parameters" element="tns:billingEntryResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="billingEntry">
    <wsdl:part name="parameters" element="tns:billingEntry">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="IBillingService">
    <wsdl:operation name="billingEntry">
      <wsdl:input name="billingEntry" message="tns:billingEntry">
    </wsdl:input>
      <wsdl:output name="billingEntryResponse" message="tns:billingEntryResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="BillingServiceServiceSoapBinding" type="tns:IBillingService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="billingEntry">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="billingEntry">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="billingEntryResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="BillingServiceService">
    <wsdl:port name="BillingServicePort" binding="tns:BillingServiceServiceSoapBinding">
      <soap:address location="http://localhost:8081/BillingEntry/services/BillingServicePort"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Immediate Problems

I am able to generate the wsdl for ProcessPayment service when I hit the Mule config inbound URL. But it is showing modified values for

   <import schemaLocation="".../>

and

   <wsdl:port><soap:address>*****</soap:address></wsdl:port>

Using this URL, I am not able to test the service on SOAPui. But when I hit the service original address, and not the Mule inbound address, I get my actual service. It s running in SOAP UI too.

Quick question:

How do I execute a flow? Simply invoking the inbound URL from the browser or SOAPui won’t work right?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-02T10:29:44+00:00Added an answer on June 2, 2026 at 10:29 am

    Here we go, I have created an example that demonstrates how to perform SOAP envelope level manipulations with CXF proxies. From there I’m sure you can expand and build whatever you need.

    Please note that:

    • No code generation is needed, I actually had to remove the classes you’ve generated otherwise it is not working. This single XML configuration with the WSDLs+XSDs is enough.
    • I’ve qualified Mule core elements in order to avoid elements XSL-T generated in the default namespace to end up in Mule core namespace. This is not required if you externalize the XSL fragments.
    • The (contrived) example exposes processpaymentservice.wsdl. It takes the value of paymentType_req, pretends it’s an IP address and uses it to call http://www.webservicex.net/geoipservice.asmx. The geolocated coutry name is then used as the value for the paymentType_res element of the process payment response (the other 2 values are faked).
    • Tested with soapUI 4.5 and Mule 3.2.1.

    Enjoy!

    <mule:flow name="processPaymentServiceOrchestration">
        <http:inbound-endpoint address="http://localhost:8080/ppso"
            exchange-pattern="request-response">
            <cxf:proxy-service wsdlLocation="classpath:processpaymentservice.wsdl"
                service="ProcessPaymentServiceService" namespace="http://processpayment.icp.sf/" />
        </http:inbound-endpoint>
    
        <!-- Transform input of ProcessPayment to input of GetGeoIP -->
        <mulexml:xslt-transformer>
            <mulexml:xslt-text>
                <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns:web="http://www.webservicex.net/">
                  <xsl:template match="/">
                    <web:GetGeoIP>
                       <web:IPAddress><xsl:value-of select="//paymentType_req" /></web:IPAddress>
                    </web:GetGeoIP>
                  </xsl:template>
                </xsl:stylesheet>
            </mulexml:xslt-text>
        </mulexml:xslt-transformer>
    
        <mule:message-properties-transformer>
            <mule:add-message-property key="SOAPAction" value="http://www.webservicex.net/GetGeoIP" />
        </mule:message-properties-transformer>
    
        <http:outbound-endpoint address="http://www.webservicex.net/geoipservice.asmx"
            exchange-pattern="request-response">
            <cxf:proxy-client soapVersion="1.2" />
        </http:outbound-endpoint>
    
        <!-- Transform response of GetGeoIP in response of ProcessPayment -->
        <mulexml:xslt-transformer>
            <mulexml:xslt-text>
                <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns:pp="http://processpayment.icp.sf/" xmlns:web="http://www.webservicex.net/">
                  <xsl:template match="/">
                    <pp:return>
                       <billingID_res>fake billingID_res</billingID_res>
                       <paymentID_res>fake paymentID_res</paymentID_res>
                       <paymentType_res><xsl:value-of select="//web:CountryName"/></paymentType_res>
                    </pp:return>
                  </xsl:template>
                </xsl:stylesheet>
            </mulexml:xslt-text>
        </mulexml:xslt-transformer>
    </mule:flow>
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Right now i have a line of code, in vb, that calls a text
Right now I have some class myService extends Service() being called by a startService
Right now I have something like this in NHibernate: Expression.Like(property, value, MatchMode.Anywhere) and that
Right now I have a few services that are defined in an assembly that
Right now I have: a multithreaded windows service written in C++ which use common
Good day! I right now have a function the drags an element from a
Right now I have this SQL query which is valid but always times out:
Right now I have def min(array,starting,ending) minimum = starting for i in starting+1 ..ending
Right now I have double numba = 5212.6312 String.Format({0:C}, Convert.ToInt32(numba) ) This will give
Right now we have AD/Exchange to manage all of our users logins/e-mail on-site at

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.