Using the FC
This Function Component (FC) helps you serialize the Java™ representation of a SOAP message into the XML representation of that SOAP message.
- If this FC is passed (a) an Entry with a "soapFault" Attribute, whose value is an object of type org.apache.axis.AxisFault, or (b) a Java object of type org.apache.axis.AxisFault, then the FC generates a SOAP Fault message containing the information stored in the passed AxisFault object.
- If the value of the Return XML as FC parameter is String then the SOAP response message is stored in the "xmlString" Attribute, if an Entry was passed to the FC. However, If the value of the Return XML as FC parameter is DOMElement then the generated SOAP message is stored in the "xmlDOMElement" Attribute , if an Entry was passed to the FC. If a Java Object array (Object[]) was passed to this FC, then the return value of the FC is either a java.lang.String object (when the value of the Return XML as FC parameter is String) or an org.w3c.dom.Element object (when the value is DOMElement).
- If the value of the "soapFault" Attribute passed in is not of type org.apache.axis.AxisFault, then an Exception is thrown.
- Each item from the value of the Operation Parameters FC parameter is the name of an Attribute, which must be present in the Entry passed to the FC. If any of these Attributes is missing, an Exception is thrown.
- If this FC is passed a Java Object array (Object[]) then it passes the SOAP operation each Java Object from this array in the order in which the Objects are stored in the array. If this FC is passed an Entry, then the order and values of the parameters passed to the SOAP operation are determined by the value of the Operation Parameters FC parameter.
- The order of the items from the value of the Operation Parameters FC parameter determines the order in which the Attribute values are passed as parameters to the SOAP operation.
- This FC is capable of generating (a) Document style SOAP messages, (b) RPC style SOAP messages and (c) SOAP Fault messages. The style of the message generated is determined by the WSDL specified by the WSDL URL FC parameter.
- The FC is capable of generating SOAP messages encoded using both "literal" encoding and SOAP Section 5 encoding. The encoding of the message generated is determined by the WSDL specified by the WSDL URL FC parameter.
- The parameter Use Multi Refs can mean different things,
but is applicable only for RPC-style messages; when Document-style
web services are used this parameter has no effect on the generated
SOAP message. If checked and the web service used is an RPC-style
web service, the generated SOAP message will use multi-refs. If not checked
and the web service used is an RPC-style web service, the generated
SOAP message will not use multi-refs. Note: The presence of the Use Multi Refs parameter is a consequence of using the Axis library to implement this FC. Currently when the Axis JavaToSoap FC serializes an RPC-style message it uses XML hrefs/multi-refs in the generated SOAP, and this breaks the Axis C++ library. That is why an Axis JavaToSoap FC configuration parameter is present to allow you to switch hrefs/multi-refs on and off.
- This FC is capable of generating SOAP messages containing values of complex types which are defined in the <types> section of a WSDL document. In order to do that this FC requires that (1) the Complex Types FC parameter contains the names all Java classes that implement the complex types used as parameters to the SOAP operation and (2) these Java classes' class files are located in the Java class path of IBM® Security Directory Integrator.
- If this FC was passed an Entry object, then the FC stores the generated SOAP message Header and SOAP message Body (apart from the entire generated SOAP message) as Attributes in the returned Entry. If the value of the Return XML as FC parameter is String then the SOAP Header and Body are stored in the "soapHeaderString" and "soapBodyString" Attributes respectively as java.lang.String objects. If the value of the Return XML as FC parameter is DOMElement then the SOAP Header and Body are stored in the "soapHeaderDOMElement" and "soapBodyDOMElement" Attributes respectively as org.w3c.dom.Element objects.