Tokenizing WSDL imports while deploying to mutliple environments

Ramkumar Menon
Director, Product Strategy

Your BPEL Process might have one or more WSDLs that import another WSDL or an XSD from the server. This might result in hardcoded URLs in your WSDL - for instance

<definitions ....>

   <import namespace="http://www.oracle.com/po" location="http://localhost:7779/schemas/xml/createpo.wsdl"/>

  . ....



When you are deploying to multiple environments, you might want to change the host and port for the URL that points to this WSDL, so that it points to the current server, or whatever you wish to use.

There is useful task named <customizeWSDL> that allows you to do this.

For this, follow the same instructions I had mentioned in the earlier blog entry for deployment to multiple environments,but with the following difference.

Instead of the <customize> task, use the <customizeWSDL> task

For e.g.


               . . . . .

          <customizeWSDL  inFile="${process.dir}/bpel/PurchaseOrder.wsdl" outFile="${process.dir}/bpel/PurchaseOrder.wsdl">    
           <wsdlImport namespace="</wsdlImport">http://www.oracle.com/po" locationURI="http://${deploy_host}:${deploy_port}/schemas/xml/createpo.wsdl"/>              



Join the discussion

Comments ( 8 )
  • Vladimir Hlavacek Thursday, July 26, 2007
    The example build file for customizeWSDL task is not correct, something like this:
    <customizeWSDL inFile="${process.dir}/bpel/PurchaseOrder.wsdl" outFile="${process.dir}/bpel/PurchaseOrder.wsdl">
    <wsdlImport namespace="http://schemas.oracle.com/bpel/extension" locationURI="http://${deploy_host}:${deploy_port}/orabpel/xmllib/RuntimeFault.wsdl"/>
    worked for me. Anyway thanks for pointing me in the right direction.
  • Ramkumar Menon Monday, July 30, 2007
    thank you very much. Good to know that it was useful for you. I shall correct the post accordingly.
  • Ravi Kumar Thursday, August 9, 2007
    Hi Ram,
    i need a help ..how do i customize the queue names inside my wsdl..
    OpaqueSchema="true" >
    how do i change my queue destination names using ant...
  • Ramkumar Menon Thursday, August 9, 2007
    As far as I know, you need to either manually change it, or write your own script that performs the tokenization and replacement.
  • Knut Vatsendvik Wednesday, August 22, 2007
    Hi Ramkumar,
    Is it possible to use the customizeWSDL task with include statements as well?
    (i.e. <include schemaLocation="http://localhost:8888/ResourceLib/Schema1.xsd" />?
  • Ramkumar Menon Wednesday, August 22, 2007
    customizeWSDL unfortunately only allows customization of wsdl imports. schema imports and includes dont work.
  • Subbu Monday, August 27, 2007
    We need to change WSDL's endpoint based on ENV we going to deploy.
    For instance We have WSDL with SOAP Location in BPEL process as file for DEV, QA as below
    DEV Endpoint location:
    QA Endpoint location:
  • house design perth Tuesday, April 26, 2011
    house design perth
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.