WAS v8.5 > Deploy applications > Deploy SCA composites > Deploy SCA business-level applicationsSCA application package deployment
WAS v8.5 supports deployment of many types of Service Component Architecture (SCA) artifacts as composition units of business-level applications. Typical artifacts include JAR files, compressed .zip files, and web application archive (WAR) files.
The following outlines the details about deployment of SCA artifacts:
Deployment of JAR or compressed files
- WAS v8.5 supports one composite file for each package. WAS v8.5 determines which composite file to support using the following process:
- The SCA deployment extension looks for the META-INF/sca-contribution.xml file, gets the name of each deployable composite defined in the file, and uses QName values to find the actual composite file names under any directory for that composite. If more than one composite is found in the sca-contribution.xml file, we can select the composite to deploy.
- If there is no META-INF/sca-contribution.xml file defined, the SCA deployment extension looks for a composite file in the META-INF/sca-deployables directory.
- WAS v8.5 validates SCA composites for inconsistencies with SCA specifications.
One specification requirement is the names of top-level components must be unique. Thus, the product validates top-level component name uniqueness.
Top-level components are also called domain components, with the top-level or domain typically the cell on multiple-server installations and the server scope on single-server installations.
WAS v8.5 validates all composite files in a JAR or compressed file, regardless of the file location in the archive or whether the sca-contribution.xml file references the composite file. WAS v8.5 does not validate all services and references.
WAS v8.5 writes warning and error messages resulting from the validation tests to the SystemOut.log file. Refer to the log file to learn about inconsistencies with specifications in your SCA composites.
IBM recommends using the HPEL log and trace infrastructure. With HPEL, one views logs using the LogViewer command-line tool in PROFILE/bin.
- WAS v8.5 uses the following process for QName resolution:
- WAS v8.5 uses the QName to resolve composite files included in the top-level composite that use the element. For example, the <include name="mynamespace:MyService"/> statement looks for a composite file whose composite name is MyService and whose targetNameSpace is mynamespace. The following rules apply:
- name: Use the outer composite.
- namespace declarations: Merged into the outer composite.
- targetNamespace: Use the outer composite (must be the same).
- local: Use the composite (preferably the same but not required).
- requires(intents) and policySets: Must be compatible, and aggregated into the outer composite.
Deployable composite files must have name and targetNamespace values. The name and targetNamespace values are combined to form the QName of a composite file.
- When a composite is used as a component implementation in the top-level composite, the composite is also resolved using the QName. For example, the <implementation.composite name="mynamespace:MyComposite"/> statement causes the product administration to look for a composite file whose composite name is MyComposite and whose targetNamespace is mynamespace.
- A JAR file can contain other JAR files at the top level. The contained JAR files are available on the classpath. However, any archives inside those JAR files are not available. WAS v8.5 supports one level of embedded JAR files.
Deployment of WAR files
- A composite file in a WAR file must be named default.composite. A composite file not in a WAR file can have any name.
- The default.composite composite file must be inside a WAR file in the META-INF/sca-deployables directory.
- The META-INF/sca-deployables directory must contain no more than one composite file. If there is more than one composite file in the META-INF/sca-deployables directory, then the product returns a validation error and stops the WAR file deployment.
However, we can place other composite files in directories other than META-INF/sca-deployables, and reference those composite files in the top-level composite under the META-INF/sca-deployables directory.
- WAS v8.5 does not support having a sca-contribution.xml file inside the WAR file under the META-INF directory. If the product finds a sca-contribution.xml file, then the product returns a validation error and stops the WAR file deployment.
Notes and limitations
- WAS v8.5 does not provide administration console pages for configuring contributions.
- If you import a package or namepace from a different contribution, or JAR (contribution.xml), we might need to import that contribution as an asset before importing our own asset.
For example, suppose your Contribution A imports a JAR file from Contribution B. You might need to import Contribution B and then Contribution A as assets. Contribution A depends on Contribution B so you must import Contribution B before importing Contribution A.
- We cannot use a local interface across a class loader boundary. Use a remotable interface to cross a class loader boundary.
Related
Deploy business-level applications
Troubleshoot applications with HPEL