Hi everybody,
I have a method in my service which return an ArrayList. In the
SoapMonitor I see that:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ns1:sessionID
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0" xsi:type="soapenc:long"
xmlns:ns1="http://xml.apache.org/axis/session"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">-3238605033002585696</ns1:sessionID>
</soapenv:Header>
<soapenv:Body>
<ns2:getLaunchablesResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="RmiSoapWorkSession">
<getLaunchablesReturn href="#id0"/>
</ns2:getLaunchablesResponse>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
soapenc:arrayType="xsd:anyType[3]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<multiRef href="#id1"/>
<multiRef href="#id2"/>
<multiRef href="#id3"/>
</multiRef>
<multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:Launchable" xmlns:ns3="urn:BeanService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<defaultDescription xsi:type="xsd:string" xsi:nil="true"/>
<engineId xsi:type="xsd:string">mainEngine</engineId>
<launchItem xsi:type="xsd:boolean">false</launchItem>
<url
xsi:type="xsd:string">http://localhost:7079/webService_2.0.xml</url>
</multiRef>
<multiRef id="id3" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns4:Launchable" xmlns:ns4="urn:BeanService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<defaultDescription xsi:type="xsd:string" xsi:nil="true"/>
<engineId xsi:type="xsd:string">mainEngine</engineId>
<launchItem xsi:type="xsd:boolean">false</launchItem>
<url
xsi:type="xsd:string">http://localhost:7079/webService_3.0.xml</url>
</multiRef>
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns5:Launchable" xmlns:ns5="urn:BeanService"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<defaultDescription xsi:type="xsd:string" xsi:nil="true"/>
<engineId xsi:type="xsd:string">mainEngine</engineId>
<launchItem xsi:type="xsd:boolean">false</launchItem>
<url
xsi:type="xsd:string">http://localhost:7079/webService_1.0.xml</url>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
But in the client I have a NullPointerException why?
I use to deploy my servie the next deploy.wsdd:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="RmiSoapWorkSession" provider="java:RPC">
<requestFlow>
<handler type="session"/>
<handler type="soapmonitor"/>
</requestFlow>
<responseFlow>
<handler type="session"/>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="className"
value="openwfe.org.worklist.ws.impl.RmiSoapWorkSession"/>
<parameter name="allowedMethods" value="Hello authentify
countWorkItems getStoreNames findFlowInstance getHeaders get getAndLock
release save forward getLaunchables launch delegate
getParticipantsForDelegation delegateToParticipant checkPermission"/>
<parameter name="scope" value="Session"/>
<beanMapping qname="ns:InFlowWorkItem"
xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.engine.workitem.InFlowWorkItem"/>
<beanMapping qname="ns:FlowExpressionId"
xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.engine.expressions.FlowExpressionId"/>
<beanMapping qname="ns:LaunchItem" xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.engine.workitem.LaunchItem"/>
<beanMapping qname="ns:Header" xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.worklist.Header"/>
<beanMapping qname="ns:StringMapAttribute"
xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.engine.workitem.StringMapAttribute"/>
<beanMapping qname="ns:StringAttribute"
xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.engine.workitem.StringAttribute"/>
<beanMapping qname="ns:Launchable" xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.worklist.Launchable"/>
<beanMapping qname="ns:HistoryItem" xmlns:ns="urn:BeanService"
languageSpecificType="java:openwfe.org.engine.workitem.HistoryItem"/>
<beanMapping qname="ns:Subject" xmlns:ns="urn:BeanService"
languageSpecificType="java:javax.security.auth.Subject"/>
<arrayMapping qname="ns:ArrayList" xmlns:ns="urn:BeanService"
languageSpecificType="java:java.util.ArrayList"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</service>
</deployment>
In my client I have the next registrerTypeMapping:
call.registerTypeMapping(Launchable.class, qnLaunchable,
new org.apache.axis.encoding.ser.BeanSerializerFactory(
Launchable.class, qnLaunchable),
new
org.apache.axis.encoding.ser.BeanDeserializerFactory(
Launchable.class, qnLaunchable));
call.registerTypeMapping(
ArrayList.class,
qnArrayList,
new
org.apache.axis.encoding.ser.ArraySerializerFactory(),
new
org.apache.axis.encoding.ser.ArrayDeserializerFactory());
What is wrong?
Thanks,
Christelle