SCA to Java bridge

You cannot directly wire a component with a Web Services Definition Language (WSDL) type of reference to another component that has a Java™ interface, but there is a utility that helps you create a bridge component to make the connection. The component is generated, so you do not have to write conversion code.

Data that flows through WebSphere® Process Server is modeled as XML schemas and processed by the server as service data objects or business objects. A service data object is a runtime representation of business data that implements the data object interface, as described in the Service Data Objects Version 2 specification.

Types that are modeled as XML and whose runtime representations are data objects are referred to as WSDL types, where inputs , outputs, and faults are described as XML schemas. Existing Java and J2EE applications process data as Java types. Java types include Java primitives, classes defined by the J2SE API, and user-defined Java classes.

In an integration environment, components that are processing WSDL types sometimes need to invoke existing Java applications that expect data as Java types. An example is a Service Component Architecture (SCA) component that needs to invoke a session EJB. This invocation requires a conversion between WSDL types and Java types. The conversion is accomplished by an SCA to Java bridge component.

You can generate the bridge component for the following Java elements:
The system generates an SCA Java component, which has the target Java interface as its reference and an interface that matches the WSDL port type that was just generated. This component takes WSDL types as parameters, converts them to Java types, and delegates the call to the target Java interface. Any returns or exceptions are converted to WSDL types and returned to the caller. The utility generates code from the imported Java interface or class, and the generated files take part of their name from that interface. The utility generates the following files:

You can generate the files and wiring in the WebSphere Integration Developer assembly editor (see "Calling Java interfaces from WSDL references", which you can access from the related links below) or you can generate the files from WebSphere Process Server using the genMapper command. If you generate the files from the genMapper command, import those files into a module in WebSphere Integration Developer. You can then use the assembly editor to wire the WSDL reference and the Java interface to the generated component.

There are restrictions on the Java class or interface that you can drag onto the assembly editor canvas to generate a bridge component:

An interface consists of one or more operations, which in turn have parameters. When using an SCA-to-Java bridge component, you can pass these parameters only by value. The system uses the Java class name as the type name for the generated data object. When you need to pass parameters from the operations of a target Java interface that is a user-defined interface, you must override the code and provide a concrete class that the system can instantiate. If the runtime environment cannot find the type to create the concrete class, the system generates a runtime exception.

For some java.util container classes, the mapper generates complex types that are based on xsd:anyType as the WSDL type. These container classes include arrays, SortedMap, AbstractMap, BitSet, Dictionary, IdentityHashMap, LinkedHashMap, and TreeMap (see "Java to XML conversion" for more details). In some cases, you might need to override the generated code by writing custom conversion code.

Edit the generated code according to the commented instructions in the file, but do not change the file names. For links to topics that provide more details about editing that code, see the related tasks below.

Related tasks
Calling WSDL interfaces from Java references
Calling Java interfaces from WSDL references
Overriding the generated Service Component Architecture implementation
Overriding a Services Data Object to Java conversion
Business services: Adding an interface
Business services: Adding a partner reference
Business services: Wiring nodes
Related reference
Java to XML conversion
Best practices: Modules and packaging for business services

Feedback
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.