Hi,
I am using Axis 1.1 in JBoss 3.2.3 and am trying to create a Webservice
using RPC/literal encoding. As I am using a complex object, I need a custom
serializer, which I have already created. On my client which I created using
AXIS as well, I register the typemapping with these serializers
programmatically, where they work like a charm. The SOAP they send out looks
like intended.
On the Server I deployed the service using the following typemapping:
<service name="FrontendTest3" provider="java:EJB" style="RPC" use="literal">
<parameter name="beanJndiName" value="ejb/FrontendTest3"/>
<parameter name="homeInterfaceName"
value="com.roche.mellibase3.interfaces3.FrontendTest3Home"/>
<parameter name="remoteInterfaceName"
value="com.roche.mellibase3.interfaces3.FrontendTest3"/>
<parameter name="allowedMethods"
value="doSimulate, resendSimulation, deleteMellibaseId"/>
<parameter name="jndiURL" value="jnp://localhost:1099"/>
<parameter name="jndiContextClass"
value="org.jnp.interfaces.NamingContextFactory"/>
<typeMapping
xmlns:myNS="http://application.mellibase.de/MellibaseMessageTypes.xsd"
qname="myNS:mb-request"
type="java:com.roche.mellibase3.jaxb.webservice.MbRequest"
serializer="com.roche.mellibase3.jaxbserialization.GeneralJaxBSerializerFac
tory"
deserializer="com.roche.mellibase3.jaxbserialization.GeneralJaxBDeserialize
rFactory"
encodingStlye=""
/>
<typeMapping
xmlns:myNS="http://application.mellibase.de/MellibaseMessageTypes.xsd"
qname="myNS:mb-result"
type="java:com.roche.mellibase3.jaxb.webservice.MbResult"
serializer="com.roche.mellibase3.jaxbserialization.GeneralJaxBSerializ
erFactory"
deserializer="com.roche.mellibase3.jaxbserialization.GeneralJaxBDeseri
alizerFactory"
encodingStlye=""
/>
</service>
However, there Axis only instantiates the Serializer Factories, but never
retrieves a serializer, which leads me to the conclusion that these are not
registered for the encoding used so that AXIS does not even try to use them.
Additionally I get the Exception:
org.xml.sax.SAXException: SimpleDeserializer encountered a child element,
which is NOT expected, in something it was trying to deserialize.
which again looks to me like Axis is not using my serializers.
However I was unable to find out how to register the serializers for
RPC/literal.
If anyone could give me a pointer to the solution of my problem I would be
very grateful.
Cheers Robert Mitschke