You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@ws.apache.org by Lior Weintraub <Li...@orcainteractive.com> on 2003/07/13 16:31:47 UTC

No Deserializer found to deserialize ArrayOf_xsd_string

Hi,

I have an Apache SOAP java client, and  I try to invoke a web service deployed on Tomcat with axis.
The web service method looks like that:   
public AssetProperties getAssetProperties(String in0, String in1) throws Exception

I keep getting the following error: 
[SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to deserialize a &apos;urn:mbws:ArrayOf_xsd_string&apos; using encoding style &apos;http://schemas.xmlsoap.org/soap/encoding/&apos;.; targetException=java.lang.IllegalArgumentException: No Deserializer found to deserialize a 'urn:mbws:ArrayOf_xsd_string' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.] 	

I've registered the AssetProperties object using BeanSerializer and it is in a Bean format.

My Soap request looks as follows:

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:getAssetProperties xmlns:ns1="urn:mbws" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xsi:type="xsd:string">dd</in0>
<in1 xsi:type="xsd:string">Wall</in1>
</ns1:getAssetProperties>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

And the response looks as follows:

<?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:Body>
  <ns1:getAssetPropertiesResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mbws">
   <getAssetPropertiesReturn href="#id0"/>
  </ns1:getAssetPropertiesResponse>
  <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:AssetProperties" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:mbws">
   <startTimeInAsset xsi:type="xsd:long">0</startTimeInAsset>
   <encodingType xsi:type="xsd:string">MPEG-1</encodingType>
   <bitRate xsi:type="xsd:long">1500000</bitRate>
   <duration xsi:type="xsd:long">632</duration>
   <assets xsi:type="ns2:ArrayOf_xsd_string" xsi:nil="true"/>
   <keywords xsi:type="xsd:string">Simple asset</keywords>
   <prefix xsi:type="xsd:long">0</prefix>
   <assetType xsi:type="xsd:string">SIMPLE</assetType>
   <endTimeInAsset xsi:type="xsd:long">0</endTimeInAsset>
   <assetName xsi:type="xsd:string">Wall</assetName>
  </multiRef>
 </soapenv:Body>
</soapenv:Envelope>

Please tell me if you have any idea about this.
Thanks,
Lior Weintraub



Re: No Deserializer found to deserialize ArrayOf_xsd_string

Posted by Scott Nichol <sn...@scottnichol.com>.
You need to register a deserializer for ArrayOf_xsd_string, something 
like

    SOAPMappingRegistry smr = new SOAPMappingRegistry();
    ArraySerializer arraySer = new ArraySerializer();
    smr.mapTypes(Constants.NS_URI_SOAP_ENC,
        new QName("urn:mbws", "ArrayOf_xsd_string"),
        String[].class, arraySer, arraySer);
    call.setSOAPMappingRegistry(smr);


On 13 Jul 2003 at 17:31, Lior Weintraub wrote:

> Hi,
> 
> I have an Apache SOAP java client, and  I try to invoke a web service deployed on Tomcat with axis.
> The web service method looks like that:   
> public AssetProperties getAssetProperties(String in0, String in1) throws Exception
> 
> I keep getting the following error: 
> [SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to deserialize a &apos;urn:mbws:ArrayOf_xsd_string&apos; using encoding style &apos;http://schemas.xmlsoap.org/soap/encoding/&apos;.; targetException=java.lang.IllegalArgumentException: No Deserializer found to deserialize a 
'urn:mbws:ArrayOf_xsd_string' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.] 	
> 
> I've registered the AssetProperties object using BeanSerializer and it is in a Bean format.
> 
> My Soap request looks as follows:
> 
> <?xml version='1.0' encoding='UTF-8'?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <SOAP-ENV:Body>
> <ns1:getAssetProperties xmlns:ns1="urn:mbws" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> <in0 xsi:type="xsd:string">dd</in0>
> <in1 xsi:type="xsd:string">Wall</in1>
> </ns1:getAssetProperties>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> 
> And the response looks as follows:
> 
> <?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:Body>
>   <ns1:getAssetPropertiesResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mbws">
>    <getAssetPropertiesReturn href="#id0"/>
>   </ns1:getAssetPropertiesResponse>
>   <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:AssetProperties" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:mbws">
>    <startTimeInAsset xsi:type="xsd:long">0</startTimeInAsset>
>    <encodingType xsi:type="xsd:string">MPEG-1</encodingType>
>    <bitRate xsi:type="xsd:long">1500000</bitRate>
>    <duration xsi:type="xsd:long">632</duration>
>    <assets xsi:type="ns2:ArrayOf_xsd_string" xsi:nil="true"/>
>    <keywords xsi:type="xsd:string">Simple asset</keywords>
>    <prefix xsi:type="xsd:long">0</prefix>
>    <assetType xsi:type="xsd:string">SIMPLE</assetType>
>    <endTimeInAsset xsi:type="xsd:long">0</endTimeInAsset>
>    <assetName xsi:type="xsd:string">Wall</assetName>
>   </multiRef>
>  </soapenv:Body>
> </soapenv:Envelope>
> 
> Please tell me if you have any idea about this.
> Thanks,
> Lior Weintraub
> 
> 
> 


Scott Nichol

Do not reply directly to this e-mail address,
as it is filtered to only receive e-mail from
specific mailing lists.