Using an abstract WSDL and its generated concrete WSDL in services
and references of the same component requires special consideration if the WSDL
contains an embedded schema. When a concrete WSDL file is generated from an
abstract WSDL file that has an embedded schema, the resulting concrete WSDL
file will also contain the same embedded schema. When you generate data binding
classes for both WSDL files, the code generator generates duplicate classes for
the embedded schema.
The impact of this is two-fold:
- Generating the data binding classes for the
abstract and concrete WSDL files into a single JAR is not supported.
- When you generate the data binding classes for the
two WSDL files into different bean JARs, both JARs will contain the same
classes.
For correct operation, you must manually remove one of the resulting
bean JARs from the bundle containing the bean JARs as follows:
- Open the component implementation bundle's
manifest in the Manifest Editor.
- Click the Runtime tab, and delete one of the JARs
containing the duplicate bean classes from the Classpath area.
- Save the manifest.
To avoid having to manually edit the manifest, the recommended method
for using abstract and concrete WSDL files in the same composite is to use only
abstract WSDL files for the component services and references and use the
concrete WSDL only for the corresponding promoted references as follows:
- Delete the wire between component references and
promoted references.
- Configure the component reference with the
abstract WSDL.
- Configure the promoted reference with the concrete
WSDL.
- Wire the component reference to the promoted
reference using the Wire tool in the Palette.
Copyright © 2022. Cloud Software Group, Inc. All Rights Reserved.