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"/>
. ....
</definitions>
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.
<bpelc>
. . . . .
<customizeWSDL inFile="${process.dir}/bpel/PurchaseOrder.wsdl" outFile="${process.dir}/bpel/PurchaseOrder.wsdl">
<wsdlImport namespace="http://www.oracle.com/po" locationURI="http://${deploy_host}:${deploy_port}/schemas/xml/createpo.wsdl"/>
</customizeWSDL>
</bpelc>
Comments (7)
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"/>
</customizeWSDL>
worked for me. Anyway thanks for pointing me in the right direction.
Posted by Vladimir Hlavacek | July 26, 2007 6:30 AM
Posted on July 26, 2007 06:30
thank you very much. Good to know that it was useful for you. I shall correct the post accordingly.
Posted by Ramkumar Menon | July 30, 2007 3:39 PM
Posted on July 30, 2007 15:39
Hi Ram,
i need a help ..how do i customize the queue names inside my wsdl..
<jca:operation
InteractionSpec="oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec"
DestinationName="jms/collaxa/BPELTestQueue"
DeliveryMode="Persistent"
TimeToLive="0"
PayloadType="TextMessage"
OpaqueSchema="true" >
</jca:operation>
how do i change my queue destination names using ant...
regards,
ravi
Posted by Ravi Kumar | August 9, 2007 3:52 PM
Posted on August 9, 2007 15:52
As far as I know, you need to either manually change it, or write your own script that performs the tokenization and replacement.
Posted by Ramkumar Menon | August 9, 2007 5:52 PM
Posted on August 9, 2007 17:52
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" />?
Thanks,
Knut
Posted by Knut Vatsendvik | August 22, 2007 6:48 AM
Posted on August 22, 2007 06:48
customizeWSDL unfortunately only allows customization of wsdl imports. schema imports and includes dont work.
Posted by Ramkumar Menon | August 22, 2007 12:45 PM
Posted on August 22, 2007 12:45
Hi,
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:
http://dev02Ora123.admin.inf/siebel/SyncSystemIDsProcess
QA Endpoint location:
http://prod02Ora123.admin.inf/siebel/SyncSystemIDsProcess
Posted by Subbu | August 27, 2007 1:49 PM
Posted on August 27, 2007 13:49