In this article, I will show how to deploy shared artifacts, leveraged by a SOA Composite application using the oramds: references, to the run time MDS. The formal approach is documented quite well – http://docs.oracle.com/middleware/1213/soasuite/develop-soa/soa-composite-deploy-jdev.htm#CACFEAJJ – so I will only briefly explain it. It turns out that at least in the development environment, there is an informal short cut that allows for very quick exchange of artifacts between design time and run time (vice versa).
The starting situation is the following: a SOA composite that references the file AircraftService.wsdl that is stored I the Design Time Repository. The reference in the SOA composite application will use the oramds: prefix, indicating that the artifact is in fact to the found in the MDS repository. However, the run time MDS associated with the target SOA Suite run time environment, does not yet contain this WSDL document. The next figure shows on the right side both the design time MDS and the run time MDS (see this article on how to expose the run time MDS in the Integrated WLS in the Resource Palette).
When we attempt to deploy the composite application, deployment will fail:
The MDS-00054: The file to be loaded … does not exist indicates that in the target environment, the oramds: reference for the WSDL document could not be evaluated properly – because the document does not exist over there.
Short Cut approach to transferring MDS artifacts from design time to run time
Because we have connections to both Design Time and Run Time MDS repositories available in JDeveloper, we can use the transfer [between MDS connections]facility to bring the missing WSDL from design time to run time:
Click Transfer on the context menu for the SOA Design Time MDS connection.
Select the resources to transfers – WSDL and XSD documents – and the target MDS Connection – the SOA Run Time MDS Connection:
Press OK to perform the transfer.
Refresh the target MDS connection:
And the transferred resources are visible
Now the deployment of the composite with the oramds: references can take place and succeed:
Formal approach to deployment of Shared Artifacts from design time MDS to run time MDS
The formally documented approach for deployment of shared artifacts to the run time MDS has the following steps:
- find the file system location for the design time MDS repository:
- create a JAR deployment profile in a SOA composite project
- add the soa-mds/apps folder in the design time MDS repository as the only contributor in the JAR profile – note: be sure to include the apps folder in here; I forgot about that and ended up with a run time MDS that has nested apps/apps folders.
- specify which folders/files should be included:
- create an application deployment profile of type SOA-Bundle; specify a dependency on the JAR deployment profile created in the previous steps
- deploy the Application Deployment Profile:
- and the result: