Activity log for bug #1096005

Date Who What changed Old value New value Message
2013-01-04 10:44:01 ctmidi bug added bug
2013-01-04 10:46:26 ctmidi description i think that WSDL generation may be broken, or at least incompatible with C# implementation of it as when trying to consume SOAP 1.1 from C#, any array will have null value even if Ladon will actually send some XML data. i have seen another bug reported here telling that WSDL Array are broken, BTW the provided patch do not help, i think this is still broken and may be inner elements should be contained inside specific node rather than in "item" ? here is how to reproduce this from the AlbumService example provided : 1/ from any Visual Studio project, as Console Application, first create a Service Web reference like explained here : http://webservices20.blogspot.fr/2008/10/interoperability-gotcha-visual-studio.html for this example called 'albumsWR' 2/ code for the C# apps ---8<--- using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using ConsoleApplication6.albumsWR; // PUT HERE THE NAME OF THE "Web References" you provide @ step 1 namespace ConsoleApplication6 { class Program { static void Main(string[] args) { AlbumService albumService = new AlbumService(); var filteredAlbums = albumService.listAlbums("The"); if (filteredAlbums.item == null) { Console.WriteLine("null contained, while it should not!"); } } } } ---8<--- when checking the result with SOAP UI, of course an XML result is provided, if we intercept the data sent with Fiddler to the C# program here is what is provided so one can check that is not a 'null' answer, BTW may be some inconsistencies occurs between the WSDL definition and/or namespace and the result provided, that prevent C# to understand how to unserialize the result ? ---8<--- <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns="urn:AlbumService" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <ns:listAlbumsResponse> <result> <item> <band> <album-titles> <item>Album Of The Year</item> <item>KING FOR A DAY - FOOL FOR A LIFETIME</item> </album-titles> <name>Faith No More</name> </band> <title>Album Of The Year</title> <songs> <item>Ashes To Ashes.mp3</item> <item>Mouth To Mouth.mp3</item> <item>Last Cup Of Sorrow [Sharam Versus Fnm Club Mix] [Bonus Track].mp3</item> <item>Paths Of Glory.mp3</item> <item>Pristina.mp3</item> <item>Light Up And Let Go [Bonus Track].mp3</item> <item>Helpless.mp3</item> <item>The Big Kahuna [Bonus Track].mp3</item> <item>She Loves Me Not.mp3</item> <item>Stripsearch.mp3</item> <item>Last Cup Of Sorrow.mp3</item> <item>Collision.mp3</item> <item>Home Sick Home.mp3</item> <item>She Loves Me Not [Spinna Crazy Dub Mix] [Bonus Track].mp3</item> <item>Last Cup Of Sorrow [Rammstein Mix] [Bonus Track].mp3</item> <item>Naked In Front of The Computer.mp3</item> <item>Got That Feeling.mp3</item> <item>Ashes To Ashes [Hardknox Alternative Mix] [Bonus Track].mp3</item> </songs> </item> <item> <band> <album-titles> <item>Paint The Sky With Stars - The Best Of Enya</item> </album-titles> <name>Enya</name> </band> <title>Paint The Sky With Stars - The Best Of Enya</title> <songs> <item>Watermark.mp3</item> <item>Boadicea.mp3</item> <item>Storms In Africa.mp3</item> <item>Book Of Days.mp3</item> <item>Caribben Blue.mp3</item> <item>The Celts.mp3</item> <item>Anywhere Is.mp3</item> <item>Shepherd Moons.mp3</item> <item>China Roses.mp3</item> <item>Marble Halls.mp3</item> <item>On My Way Home.mp3</item> <item>Ebudae.mp3</item> <item>The Memory Of Trees.mp3</item> <item>Paint The Sky With Stars.mp3</item> <item>Only If....mp3</item> <item>Orinoco Flow.mp3</item> </songs> </item> <item> <band> <album-titles> <item>Zitilites</item> <item>No Balance Palace</item> <item>Home Dead</item> <item>Travelogue</item> <item>Cruzential</item> <item>The Good Life</item> </album-titles> <name>Kashmir</name> </band> <title>The Good Life</title> <songs> <item>Gorgeous.mp3</item> <item>New Year's Eve.mp3</item> <item>Lampshade.mp3</item> <item>It's OK Now.mp3</item> <item>Graceland.mp3</item> <item>Miss You.mp3</item> <item>Mudbath.mp3</item> <item>Mom In Love, Daddy In Space.mp3</item> <item>Kiss Me Goodbye.mp3</item> <item>Make It Grand.mp3</item> </songs> </item> <item> <band> <album-titles> <item>The Wall CD2</item> <item>The Wall Part I</item> </album-titles> <name>Pink Floyd</name> </band> <title>The Wall CD2</title> <songs> <item>Nobody Home.mp3</item> <item>Waiting For The Worms.mp3</item> <item>Bring The Boys Back Home.mp3</item> <item>The Trial.mp3</item> <item>Is There Anybody Out There?.mp3</item> <item>Comfortably Numb.mp3</item> <item>Run Like Hell.mp3</item> <item>The Show Must Go On.mp3</item> <item>Vera.mp3</item> <item>In The Flesh.mp3</item> <item>Outside The Wall.mp3</item> <item>Hey You.mp3</item> <item>Stop.mp3</item> </songs> </item> <item> <band> <album-titles> <item>The Wall CD2</item> <item>The Wall Part I</item> </album-titles> <name>Pink Floyd</name> </band> <title>The Wall Part I</title> <songs> <item>The Happiest Days Of Our Lives.mp3</item> <item>Another Brick In The Wall (Part 1).mp3</item> <item>Goodbye Cruel World.mp3</item> <item>One Of The Turns.mp3</item> <item>In The Flesh?.mp3</item> <item>Empty Spaces.mp3</item> <item>The Thin Ice.mp3</item> <item>Goodbye Blue Sky.mp3</item> <item>Another Brick In The Wall (Part 2).mp3</item> <item>Another Brick In The Wall (Part 3).mp3</item> <item>Young Lust.mp3</item> <item>Mother.mp3</item> <item>Don't Leave Now.mp3</item> </songs> </item> </result> </ns:listAlbumsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ---8<--- i think that WSDL generation may be broken, or at least incompatible with C# implementation of it as when trying to consume SOAP 1.1 from C#, any array will have null value even if Ladon will actually send some XML data. i have seen another bug reported here telling that WSDL Array are broken, BTW the provided patch do not help, i think this is still broken and may be inner elements should be contained inside specific node rather than in "item" ? here is how to reproduce this from the AlbumService example provided : 1/ from any Visual Studio project, as Console Application, first create a Service Web reference like explained here : http://webservices20.blogspot.fr/2008/10/interoperability-gotcha-visual-studio.html for this example called 'albumsWR' 2/ code for the C# apps ---8<--- using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using ConsoleApplication6.albumsWR; // PUT HERE THE NAME OF THE // ... "Web eferences" you provide @ step 1 namespace ConsoleApplication6 {     class Program     {         static void Main(string[] args)         {             AlbumService albumService = new AlbumService();             var filteredAlbums = albumService.listAlbums("The");             if (filteredAlbums.item == null)             {               Console.WriteLine("null contained, while it should not!");             }         }     } } ---8<--- when checking the result with SOAP UI, of course an XML result is provided, if we intercept the data sent with Fiddler to the C# program here is what is provided so one can check that is not a 'null' answer, BTW may be some inconsistencies occurs between the WSDL definition and/or namespace and the result provided, that prevent C# to understand how to unserialize the result ? here is a cut n paste of this interception with Fiddler (that is the raw Ladon answer to the C# call) ---8<--- <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns="urn:AlbumService" xmlns:xsd="http://www.w3.org/2001/XMLSchema">    <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">       <ns:listAlbumsResponse>      <result>         <item>            <band>           <album-titles>              <item>Album Of The Year</item>              <item>KING FOR A DAY - FOOL FOR A LIFETIME</item>           </album-titles>           <name>Faith No More</name>            </band>            <title>Album Of The Year</title>            <songs>           <item>Ashes To Ashes.mp3</item>           <item>Mouth To Mouth.mp3</item>           <item>Last Cup Of Sorrow [Sharam Versus Fnm Club Mix] [Bonus Track].mp3</item>           <item>Paths Of Glory.mp3</item>           <item>Pristina.mp3</item>           <item>Light Up And Let Go [Bonus Track].mp3</item>           <item>Helpless.mp3</item>           <item>The Big Kahuna [Bonus Track].mp3</item>           <item>She Loves Me Not.mp3</item>           <item>Stripsearch.mp3</item>           <item>Last Cup Of Sorrow.mp3</item>           <item>Collision.mp3</item>           <item>Home Sick Home.mp3</item>           <item>She Loves Me Not [Spinna Crazy Dub Mix] [Bonus Track].mp3</item>           <item>Last Cup Of Sorrow [Rammstein Mix] [Bonus Track].mp3</item>           <item>Naked In Front of The Computer.mp3</item>           <item>Got That Feeling.mp3</item>           <item>Ashes To Ashes [Hardknox Alternative Mix] [Bonus Track].mp3</item>            </songs>         </item>         <item>            <band>           <album-titles>              <item>Paint The Sky With Stars - The Best Of Enya</item>           </album-titles>           <name>Enya</name>            </band>            <title>Paint The Sky With Stars - The Best Of Enya</title>            <songs>           <item>Watermark.mp3</item>           <item>Boadicea.mp3</item>           <item>Storms In Africa.mp3</item>           <item>Book Of Days.mp3</item>           <item>Caribben Blue.mp3</item>           <item>The Celts.mp3</item>           <item>Anywhere Is.mp3</item>           <item>Shepherd Moons.mp3</item>           <item>China Roses.mp3</item>           <item>Marble Halls.mp3</item>           <item>On My Way Home.mp3</item>           <item>Ebudae.mp3</item>           <item>The Memory Of Trees.mp3</item>           <item>Paint The Sky With Stars.mp3</item>           <item>Only If....mp3</item>           <item>Orinoco Flow.mp3</item>            </songs>         </item>         <item>            <band>           <album-titles>              <item>Zitilites</item>              <item>No Balance Palace</item>              <item>Home Dead</item>              <item>Travelogue</item>              <item>Cruzential</item>              <item>The Good Life</item>           </album-titles>           <name>Kashmir</name>            </band>            <title>The Good Life</title>            <songs>           <item>Gorgeous.mp3</item>           <item>New Year's Eve.mp3</item>           <item>Lampshade.mp3</item>           <item>It's OK Now.mp3</item>           <item>Graceland.mp3</item>           <item>Miss You.mp3</item>           <item>Mudbath.mp3</item>           <item>Mom In Love, Daddy In Space.mp3</item>           <item>Kiss Me Goodbye.mp3</item>           <item>Make It Grand.mp3</item>            </songs>         </item>         <item>            <band>           <album-titles>              <item>The Wall CD2</item>              <item>The Wall Part I</item>           </album-titles>           <name>Pink Floyd</name>            </band>            <title>The Wall CD2</title>            <songs>           <item>Nobody Home.mp3</item>           <item>Waiting For The Worms.mp3</item>           <item>Bring The Boys Back Home.mp3</item>           <item>The Trial.mp3</item>           <item>Is There Anybody Out There?.mp3</item>           <item>Comfortably Numb.mp3</item>           <item>Run Like Hell.mp3</item>           <item>The Show Must Go On.mp3</item>           <item>Vera.mp3</item>           <item>In The Flesh.mp3</item>           <item>Outside The Wall.mp3</item>           <item>Hey You.mp3</item>           <item>Stop.mp3</item>            </songs>         </item>         <item>            <band>           <album-titles>              <item>The Wall CD2</item>              <item>The Wall Part I</item>           </album-titles>           <name>Pink Floyd</name>            </band>            <title>The Wall Part I</title>            <songs>           <item>The Happiest Days Of Our Lives.mp3</item>           <item>Another Brick In The Wall (Part 1).mp3</item>           <item>Goodbye Cruel World.mp3</item>           <item>One Of The Turns.mp3</item>           <item>In The Flesh?.mp3</item>           <item>Empty Spaces.mp3</item>           <item>The Thin Ice.mp3</item>           <item>Goodbye Blue Sky.mp3</item>           <item>Another Brick In The Wall (Part 2).mp3</item>           <item>Another Brick In The Wall (Part 3).mp3</item>           <item>Young Lust.mp3</item>           <item>Mother.mp3</item>           <item>Don't Leave Now.mp3</item>            </songs>         </item>      </result>       </ns:listAlbumsResponse>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> ---8<---
2013-01-04 11:09:13 jsgaarde marked as duplicate 1096004