If I understand you right, then I have to register type mapping for the complex type and also the array of  the complex type.

But the problem that I have is that the QName is the same for all the arrays each of a different complex types. So ends up happening is that if I register an Array of  ComplexTypeA and then register another Array of ComplexTypeB, then the Array of ComplexTypeA is overwritten by B, since its the same QName.
This is what my response looks like, the wsdd doesnot provide unique QNames for these arrays since they are part of a much bigger object, and just supposed to be array's of Objects.

response:
        <requests xsi:type="Array" arrayType="SearchRequest[1]">
        <requests xsi:type="Array" arrayType="SearchView[2]">

Thanks for all your help...
Parul



"Wagh, Shrikant" <[EMAIL PROTECTED]>

02/24/2004 10:11 AM
Please respond to axis-user

       
        To:        <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]>
        cc:        "Wagh, Shrikant" <[EMAIL PROTECTED]>
        Subject:        FW: No deserializer defined for array type



Hi Parul,

If you are still looking for the answers for "serializer and
deserializer for arrays" issues then this might be helpful information
to you.

Best regards,
Shrikant Wagh
QA Lead, HPP/Eprofile, HP

-----Original Message-----
From: Wagh, Shrikant
Sent: Thursday, January 22, 2004 2:29 PM
To: '[EMAIL PROTECTED]'; [EMAIL PROTECTED]
Cc: Wagh, Shrikant
Subject: RE: No deserializer defined for array type

Hi,

If you use the array of user defined complex types in your web service
then you will have to specify the type mapping for the complex type as
well as for array of the complex type.

The sample type mapping for using array of user defined types can be as
shoen below.

 <typeMapping
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns670:SOAPStruct"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
type="java:datainter.SOAPStruct"
xmlns:ns670="http://soapinterop.org/xsd"/>
 <typeMapping
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="ns671:ArrayOfSOAPStruct"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
type="java:datainter.SOAPStruct[]"
xmlns:ns671="http://soapinterop.org/xsd"/>


And of course you will have to write the class which represent the
complex type. Write the interface and implementation and deploy the
service using wsdd. I'm sure you know rest of the drill.

You do not have to write any custom serializer, unless you really want
to.

hope this helps.

Thanks,
Shrikant Wagh
QA Lead, HPP/Eprofile, HP

For those who are interested in Web Services testing:
-----------------------------------------------------
I found that WebServiceTester from Optimyz software is a very good tool
for testing any types of web services, and I'm great fan of this tool.
It supports all types of web services, and all simple and complex types
and it very usable than any other tool in the market I ever
used/evaluated. It automatically generates the SOAP requests and invokes
the intended web services. It can perform functional, regression and
load testing of web services. Result analysis and status reporting is
just wonderful.  I'll highly recommend this tool for testing web
services, saves lots of time and efforts in testing web services. For
more information visit http://www.optimyz.com.

DISCLAIMER
================================================================

THESE ARE MY PERSONAL VIEWS/OPINIONS AND DOES NOT REPRESENT HP, AND THE
INFORMATION PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
THE I/HP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
INFORMATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=================================================================

-----Original Message-----
From: Pradeep Bhatt [mailto:[EMAIL PROTECTED]
Sent: Monday, January 19, 2004 1:11 PM
To: [EMAIL PROTECTED]
Subject: No deserializer defined for array type

Hi,

I am facing with the following issue:
No deserializer defined for array type
{http://object.myobject}CounterInfoType
faultActor: null
faultDetail:
       stackTrace: org.xml.sax.SAXException: No deserializer defined
for array type {http
://object.myobject}CounterInfoType
       at
org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeser
ializer
.java:257)
       at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.
java:39
4)
       at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deseria
lizatio
nContextImpl.java:906)
       at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:
200)
       at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.j
ava:684
)
       at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:241)
       at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:265)
.........

Can some one help me out of this situation ! I am using AXIS 1.0.

Thanks
Pradeep





Reply via email to