Custom serializers/deserializers
Serialization helps you in converting a Java™ object to an XML element. Deserialization helps you in converting an XML element to a Java object.
Both AxisJavaToSoap and AxisSoapToJava Function Components provide methods for registering XML type to Java type mappings with custom serializers/deserializers (by default all complex types are serialized/deserialized by Axis' org.apache.axis.encoding.ser.BeanSerializer/org.apache.axis.encoding.ser.BeanDeserializer).
/**
* This method is analogous to the 'registerTypeMapping' method in org.apache.axis.client.Call.
* It can be used for configuring serialization/deserialization of Java types, for which the
* default serializer/deserializer (org.apache.axis.encoding.ser.BeanSerializer/
* org.apache.axis.encoding.ser.BeanDeserializer) is not suitable.
*/
public void registerTypeMapping(Class javaType,
QName xmlType,
SerializerFactory serializerFactory,
DeserializerFactory deserializerFactory)
This method can be invoked on an FC in the "After Initialize"
Prolog FC hook through JavaScript like
this:
var myClass = java.lang.Class.forName("mypackage.MyClass");
var myQName = new javax.xml.namespace.QName("http://www.myserver.com", "MyClass");
var mySerializerFactory = new mypackage.MySerializerFactory();
var myDeserializerFactory = new mypackage.MyDeserializerFactory();
myFC.getFunction().registerTypeMapping(myClass, myQName, mySerializerFactory, myDeserializerFactory);