cancel
Showing results for 
Search instead for 
Did you mean: 

Error in Receiver Soap Adapter for Google API

0 Kudos

Hi,

I am working on HTTP-XI-Soap scenario which on the receiver side calls google API for spell check.

I get the following error : <b>No Deserializer found to deserialize a ':key' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.</b>

However if I try calling the webservice individually using SOAP Client it works fine and do get desired response.The soap message that is sent by the client to the target URL is :

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:GoogleSearch" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <urn:doSpellingSuggestion soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <key xsi:type="xsd:string">qXWD4x1QFHIo/dePqlYOLwT7kMmkv80E</key>
         <phrase <b>xsi:type="xsd:string"</b>>Bratney</phrase>
      </urn:doSpellingSuggestion>
   </soapenv:Body>
</soapenv:Envelope>

However if i remove the "xsi:type="xsd:string" part from the element 'phrase' and 'key' it returns the same error as it does while using with XI.

Hence I am assuming that that the outgoing soap message elements need to have the above highlighed attribute.

Now I want to have this attribute(xsi:type="xsd:string) in the soap message that is sent from XI.

My question is , Is there any setting using which I can add the attributes in the above form to the outgoing message from XI.I do not want to use a adapter Module.

Thanks & Regards,

Sidharth

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Sidharth,

You post here the soap message that is sent by the client to the target URL, but did you look to the soap message that is sent by XI?

Try the AF monitor http://<host>:<j2ee-port>//MessagingSystem/monitor/monitor.jsp?

Because XI soap adapter doesn't support all tags of wsdl rpc-based, we need to adjust them...

Look to the SOAP FAQ (SAP note number 856597) under question "Can I convert an RPC styled WSDL to a document styled WSDL?"... Look at last but one paragraph ;o)

So, you need to change this attribute to one that it is compatible...

Go to http://service.sap.com/xi > Media Library > Documentation and there you will find this xls document -> SAP XI 3.0 (SP11) - Supported XML Schema and WSDL (EN) in this document you have all the compatible elements of wsdl for XI.

One more thing, you can adjust your soap request and change or add the required tags You can do it with xslt-mapping or create your won data types in XI without import the WSDL generated by google.

Hope it helps,

Ricardo.

Message was edited by: Ricardo Quintino

Former Member
0 Kudos

Hi Ricardo,

Same problem here with the RPC-styled Google WSDL.

I'm a beginner with XI (and XML in general, therefore I would leave XSLT mapping out for now!)

Can you please elaborate a little bit more when you say create your own data types? I've done this but I'm still unable to get the desired result (i.e. something like <key <b>xsi:type="xsd:string"</b>>)

Thanks in advance!

Max

Answers (1)

Answers (1)

Former Member
0 Kudos

I have exactly the same problem and my first thought was to define an own data type with a corresponding attributes. So I have tried this but it isn't possible to define a attribute with the name "xsi:type". How can I handle this?