<br><br><div><span class="gmail_quote">On 6/3/07, <b class="gmail_sendername">Geoff Crawford</b> &lt;<a href="mailto:geoff@innov8cs.com">geoff@innov8cs.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
At 10:35 AM 6/2/2007, John Sundman wrote:<br><br>&gt;Second, as of 4.0.2 the XML-RPC APIs now work in both DHTML and SWF<br>&gt;runtimes in SOLO mode -- no LPS required.<br>&gt;<br><br>Thanks for that!<br><br>Sounds like you might be the right person to ask a couple
<br>of questions on RPC - particularly SOAP.<br><br>Any chance the SOAP will also be available to SOLO any<br>time soon?</blockquote><div><br><br>Hi, I&#39;m doing the most current work on the RPC libraries in the SWF and DHTML runtimes. 
<br>There are a bunch of good issues you&#39;ve raised, I&#39;ll try to address some of them<br>and give an overview of what the plans are. I cc&#39;d this discussion to Laszlo-Dev as well. <br><br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;m currently working on some SOAP calls, which unfortunately<br>the system is not following the WSDL and the name spacing<br>is off.<br><br>Ways I&#39;ve thought of getting around it are:<br><br>1. just going to some plain XMLHttpRequest code - are you aware
<br>the DHTML version of XMLHttpRequest is broken?&nbsp;&nbsp;I&#39;m playing in<br>SWF and working code complains about using lz.XMLHttpRequest<br>because it&#39;s duplicating the name??&nbsp;&nbsp;I can give you details<br>and file a bug report if need be.
</blockquote><div><br>Please file a bug report, thanks!<br><br>The SWF implementation of XMLHTTPRequest&nbsp; was just a simple wrapper around<br>the standard data loading API, to make AJAX programmers feel more at home. <br>That was put in long before we started implementing the DHTML runtime. Now that we have DHTML, we need to figure out how to reconcile this. I&#39;d like to leave the native
<br>DHTML XMLHTTPRequest, and rename the pseudo-XMLHTTPRequest class that is in SWF, or at least make people use the &#39;lz&#39; prefix, so there is no warning or shadowing <br>going on. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2. I have to do 3 calls instead of one to get my XML dataset,<br>otherwise I could fudge my own XML to the datatset&#39;s loading<br>of the data. So I ruled that out.<br><br>3. I looked heavily at the dhtml (and SWF versions too) of
<br>rpc.js, namespace.js, and soap.js.&nbsp;&nbsp;I thought I saw some<br>serialize routines that were creating the XML in namespace.js,<br>but changing that code didn&#39;t affect the XML generated in<br>the SOAP request. I can sort of see where some of the values
<br>used in the SOAP envelope are being created, but not the actual<br>XML body.&nbsp;&nbsp;I&#39;m thinking it builds some kind of prototypical<br>XML at time of loading the WSDL.&nbsp;&nbsp;If you could direct me to<br>where that code is, I&#39;d be happy to make some corrections.
<br><br>4. Because my issue is with name spacing, I was thinking I<br>might also be able to just change the name space lookup table<br>to make it work.&nbsp;&nbsp;Unfortunately I can&#39;t see to track down where<br>it applies that table in order to know what changes in the
<br>table would produce the right name space.&nbsp;&nbsp;Basically the<br>WSDL calls for each request to have a name space value on<br>the body that is equal to the domain default plus &quot;:&quot; and<br>the port name.&nbsp;&nbsp;The SOAP implementation ignores the WSDL&#39;s
<br>definition of the message it should build and uses a<br>single value all the time that came from the WSDL:Definition<br>section.&nbsp;&nbsp;(I can confirm that because I mess with my<br>WSDL and see that changing in the SOAP request)
<br><br>5. Maybe if I someone could also point me to where the<br>XML is being sent out, I could do a quick transformation<br>on the one attribute of the one node in question.&nbsp;&nbsp;How<br>can I get access to what SOAP is sending out just before
<br>the actual XMLHttpRequest is invoked?<br><br>OK so I&#39;m going to push my luck here, and also ask if<br>there isn&#39;t a way to share my WSDL between two different<br>SOAP instances?&nbsp;&nbsp;What I&#39;d really love to see is the
<br>WSDL= be able to be set to a dataset instead of always<br>being a URL.&nbsp;&nbsp;I&#39;m working on ERP systems - there are<br>lots and lots of ports, and multiple operations in<br>each of the ports.&nbsp;&nbsp;Have you noticed the WSDL load
<br>is actually quite a bit slower than loading the same<br>document into a dataset?&nbsp;&nbsp;(not to mention the issues<br>of async calls when you have 19 calls to the exact<br>same WSDL document)&nbsp;&nbsp;I have ideas about what that<br>
code should look like, but don&#39;t know enough of<br>where to start.<br><br>Thanks for listening anyway. ;-)</blockquote><div><br>I&#39;ll post a separate message to laszlo-dev which outlines how the current system works. 
<br>Briefly, it does do some XML serialization on the client to format the SOAP request. <br>Then the message is passed to the server, which relies on the apache axis library on the server to implement the SOAP transaction with the back-end, and then that response is encoded as SWF byte code (for Flash) or&nbsp; JSON (for DHTML) and sent back to the client. 
<br>Some namespace issues may better be dealt with on the server end than on the client.<br><br>What I&#39;d really like to see is an implementation of the SOAP protocol entirely in Javascript, that could be ported to LZX. That would&nbsp; get the LPS server and Apache-axis out of the loop entirely. This would allow SOLO&nbsp; apps to be SOAP clients. (And I&#39;d like to do that with XMLRPC as well, which should be an order of magnitude easier than the SOAP client implementation).
<br><br>I&#39;ve been looking around to see if anyone has implemented an<br>open source SOAP client in Javascript, but so far haven&#39;t found anything that is even close to compliant with the spec. I&#39;d be interested if you know of anything that looks promising
<br>in that area?<br><br>The LPS server&nbsp; is currently using a fairly old version of the apache axis and related utility libraries. There are some SOAP bugs that may be fixed by moving to a more recent apache axis and related utility libraries, but the apache APIs have drifted a lot, so this is not trivial. 
<br><br><br><br> </div><br></div><br><br clear="all"><br>-- <br>Henry Minsky<br>Software Architect<br><a href="mailto:hminsky@laszlosystems.com">hminsky@laszlosystems.com</a><br><br>