On 10/30/07, keiji Ono <[EMAIL PROTECTED]> wrote: > > I have checked Apache-Axis library. And i knew where it was implemented > but at the same time > i did not understand about my issue whether it was a spec or bug. Then i > will ask it for Axis forum. > Thank you for everything. > > BTW, i have been seeing OpenLaszlo source code by now, i would like to > confirm and gather up my *understanding* on processing SOAP data. If > this is incorrect, please correct me. > > Issue: procedure SOAP message data to provide to client > Example data: <data tag>burabura data</data tag> > Process: > 1. read SOAP data ( like the example data ) > 2. disintegrate in tag and data > 3. the data will be converted to Flash data format > 4. reassemble the tag and the data > 5. put it out it to client by HttpServletResponse > > But i did not find the point of *reassemble* clearly.
Hello Keiji, I was probably the last person to touch the SOAP code, when I added support for the DHTML runtime. In SWF, the SOAP data is converted to flash, using the old data compiler which used to be used for XML data, but is no longer used for that. In the DHTML version of the SOAP code, the data is converted to JSON format. This might be easier to understand than the swf code paths, if you look at the output that is sent to the client. It is a JSON string which is just a combination of string, number, and arrays and objects. It had been my intention to rewrite the SOAP server code for the SWF runtime, so that instead of using the old data compiler, it would instead just use the JSON format that we now use for DHTML, and compile the JSON string to swf with the regular "script compiler" that all the other Laszlo code goes through. This would simplify the code substantially on the server, as it would eliminate the two duplicate code paths that exist now for SWF and DHTML. Unfortunately I have not had time to do that. Henry Best, > Keiji Ono > > � wrote: > > > We use "apache-axis" for this server-side job, see i.e. at > > org.openlaszlo.remote.swf.soap.encoding.SOAPDataEncoder#buildHeaders( > org.apache.axis.message.SOAPHeader). > > > > > > So I guess you need to check the "axis.jar" (JavaDoc: > > " > http://ws.apache.org/axis/java/apiDocs/org/apache/axis/message/package-summary.html > ") > > to get any further. > > > > - Andr� > > > >> Hi Ben, > >> > >> Thank you for your reply. > >> Yes, i also found your point and i was searching the implementation. > >> If it did not implement in OpenLaszlo source, it must came from > >> saaj.jar or other jars. > >> As far as i know, this class declared as Interface class in SAAJ, so > >> i wondered > >> where did it implement. > >> In your opinion, OpenLaszlo depend on the standard of JARs, right? > >> If so, i would appreciate it if you gave me the information about > >> JARs version and so on. > >> > >> Best, > >> Keiji Ono > >> > >> Benjamin Shine wrote: > >> > >> >/ > >> />/ It looks to me like SOAPElement is imported from />/ > >> javax.xml.soap.SOAPElement: > >> />/ > >> />/ $ grep SOAPElement `find . -name "SOAP*.java"` > >> />/ ... > >> />/ ./WEB-INF/lps/server/src/org/openlaszlo/remote/swf/soap/encoding/ > >> />/ SOAPDataEncoder.java: > >> />/ import javax.xml.soap.SOAPElement; > >> />/ ... > >> />/ > >> />/ So that implementation must come from one of the jars we ship > >> with, />/ but I don't know which one. > >> />/ > >> />/ Is this the information you were looking for? > >> />/ -ben > >> />/ > >> />/ > >> />/ On Oct 25, 2007, at 6:13 PM, keiji Ono wrote: > >> />/ > >> />>/ Hi > >> />>/ > >> />>/ I could make in focus on this issue. > >> />>/ I found the method of .getChildElements() was rejecting all blanks > >> />>/ at the head and tail of SOAPElement class. > >> />>/ But as you know, SOAPElement class was declared by Interface > >> class in />>/ SAAJ. > >> />>/ As the next step, i checked how SOAPElement class had > >> implemented in />>/ OpenLaszlo. > >> />>/ but i could not find the point in OpenLaszlo source. > >> />>/ If i could find it, i could know it whether it was bug or spec. > >> />>/ Hey Server Side Men, could you give some hints for me? > >> />>/ > >> />>/ Best, > >> />>/ Keiji Ono > >> />>/ > >> />>/ keiji Ono wrote: > >> />>/ > >> />>>/ I have been continuing to solve this issue. > >> />>>/ And i look at the point of the suspicious, but i could not know > >> it />>>/ clearly. > >> />>>/ At the point is in SOAPDataEncoder.java. > >> />>>/ The 'issue' code is in the method of _traverseDOM(). > >> />>>/ > >> />>>/ SOAPDataEncoder.java _traverseDOM() > >> />>>/ > >> />>>/ iter = el.getChildElements(); > >> />>>/ while(iter.hasNext()){ > >> />>>/ Object o = iter.next(); <---- 1 > >> />>>/ if( Text.class.isInstance(o) ){ > >> />>>/ characters(((Text)o).getValue() ); <---- 2 > >> />>>/ }else{ > >> />>>/ . > >> />>>/ . > >> />>>/ } > >> />>>/ } > >> />>>/ > >> />>>/ At the point of 1, when the Object o contained a string > >> />>>/ "<sometag><![CDATA[ Text Strings]]></sometag>", > >> />>>/ .getValue() at the point of 2 got the string "Text Strings" and > >> />>>/ set it to the method of characters(). The characters() > >> />>>/ push it to client through FlashBuffer class. > >> />>>/ The issue of it is the blank of the start strings has been > >> rejected />>>/ by getValue(). > >> />>>/ > >> />>>/ I do not know whether this is the specification of getValue() > >> of />>>/ org.apache.xml.message.Text class. > >> />>>/ Is not there the person knowing a lot about this? > >> />>>/ > >> />>>/ Keiji Ono > >> />>>/ > >> />>>>/ Hummm, it did not effect to the log file. > >> />>>>/ Basically, i did not use multibyte data, so whichever use > >> UTF-8 />>>>/ parameter in the properties file, > >> />>>>/ it did not effect to it, i think. > >> />>>>/ > >> />>>>/ BTW, the reason why i am taking this issue, because i have a > >> />>>>/ trouble on SOAP data handling on LPS. > >> />>>>/ The trouble is like this. > >> />>>>/ When i sent data from a OpenLaszlo application, like ' ABC' to > >> SOAP />>>>/ server, but the return was > >> />>>>/ 'ABC'. Pay attention this, LPS cut out those spaces of the data. > >> />>>>/ I traced how to treat the data in LPS, so i reached > >> FileUtil.java. />>>>/ I know the data from SOAP server > >> />>>>/ to LPS are correct, that mean the data has the spaces. > >> />>>>/ > >> />>>>/ Any advances. Thank you. > >> />>>>/ > >> />>>>/ Keiji Ono > >> />>>>/ > >> />>>>/ > >> />>>>/ P T Withington wrote: > >> />>>>/ > >> />>>>>/ I wonder if the problem is that log4j is not configured for > >> UTF8? />>>>>/ I found this with Google: > >> />>>>>/ > >> />>>>>>/ Debugging can be fun with high byte characters as generally > >> />>>>>>/ logging to a console isn't going to show you the characters > >> you />>>>>>/ are expecting. If you did this: > >> />>>>>>/ > >> />>>>>>/ System.out.println(new String(new byte[] { -28, -72, > >> -83},"UTF-8") > >> />>>>>>/ > >> />>>>>>/ Then you'd probably just see a ? rather than the Chinese > >> />>>>>>/ character that it really should be. However, you can make > >> log4j />>>>>>/ log UTF-8 messages. Just add > >> />>>>>>/ > >> />>>>>>/ <param name="Encoding" value="UTF-8"/> > >> />>>>>>/ > >> />>>>>>/ To the appender in your log4j.xml config. Or this: > >> />>>>>>/ > >> />>>>>>/ log4j.appender.myappender.Encoding=UTF-8 > >> />>>>>>/ > >> />>>>>>/ To your log4j.properties file. You might still only see the > >> UTF-8 />>>>>>/ data properly if you view the log file in an editor/ > >> viewer that />>>>>>/ can view UTF-8 data (Windows notepad is ok for > >> instance). > >> />>>>>/ > >> />>>>>/ > >> />>>>>/ > >> />>>>>/ > >> />>>>>/ > >> />>>>>/ [Java UTF???????????????????????????8 international character > >> />>>>>/ support with Tomcat and Oracle, 26/03/07, Kieran's > >> blog](http:// />>>>>/ blogs.warwick.ac.uk/kieranshaw/entry/ />>>>>/ > >> utf-8_internationalisation_with/) > >> />>>>>/ > >> />>>>>/ Also, I wonder if using the Firebug extension to Firefox > >> might />>>>>/ help. Using the Net pane, you should be able to see the > >> content of />>>>>/ the http get. > >> />>>>>/ > >> />>>>>/ On 2007-09-27, at 20:20 EDT, keiji Ono wrote: > >> />>>>>/ > >> />>>>>>/ Who dose maintenance this Java file ? > >> />>>>>>/ If you give me a little tip, i can progress on it. > >> />>>>>>/ > >> />>>>>>/ keiji Ono wrote: > >> />>>>>>/ > >> />>>>>>>/ Ben, > >> />>>>>>>/ > >> />>>>>>>/ Thank you for your suggestion, but i tried already it on > >> 4.0.5 />>>>>>>/ as a trial , > >> />>>>>>>/ but it did not work on it. > >> />>>>>>>/ I know it worked till on 4.0.3. :@ > >> />>>>>>>/ > >> />>>>>>>/ It will be good if i can give you a sample code of it , but > >> as />>>>>>>/ you know > >> />>>>>>>/ it is not > >> />>>>>>>/ easy to give SOAP sample. > >> />>>>>>>/ And our application is now working on 3.3.3, so i would > >> like to />>>>>>>/ try on > >> />>>>>>>/ 3.3.3. > >> />>>>>>>/ > >> />>>>>>>/ I am thinking as following steps now. > >> />>>>>>>/ 1. Check it on 3.3.3 > >> />>>>>>>/ 2. If i find looks like bug in it, i will change it. > >> />>>>>>>/ 3. Then i am going to look at 4.0.5 source. > >> />>>>>>>/ > >> />>>>>>>/ So could you give some advance? > >> />>>>>>>/ Thank you. > >> />>>>>>>/ > >> />>>>>>>/ Keiji ono > >> />>>>>>>/ > >> />>>>>>>/ Benjamin Shine wrote: > >> />>>>>>>/ > >> />>>>>>>/ > >> />>>>>>>/ > >> />>>>>>>>/ Keiji, I suggest you work with lps-4.0.5. It is the most > >> />>>>>>>>/ current, and > >> />>>>>>>>/ we are more likely to be familiar with the code that > >> you're />>>>>>>>/ working > >> />>>>>>>>/ with. See > >> />>>>>>>>/ http://www.openlaszlo.org/node/383 > >> />>>>>>>>/ for the announcment. > >> />>>>>>>>/ > >> />>>>>>>>/ -ben > >> />>>>>>>>/ > >> />>>>>>>>/ On Sep 26, 2007, at 5:03 AM, keiji Ono wrote: > >> />>>>>>>>/ > >> />>>>>>>>/ > >> />>>>>>>>/ > >> />>>>>>>>>/ Adding, it was the source of lps-3.3.3, and the data was > >> not />>>>>>>>>/ multibyte > >> />>>>>>>>>/ character. > >> />>>>>>>>>/ > >> />>>>>>>>>/ Keiji Ono > >> />>>>>>>>>/ > >> />>>>>>>>>/ > >> />>>>>>>>>/ > >> />>>>>>>>>>/ Hi all, > >> />>>>>>>>>>/ > >> />>>>>>>>>>/ I am checking about Input/Output data on LPS now. > >> />>>>>>>>>>/ Because when i take SOAP interface on my application, > >> the />>>>>>>>>>/ getting data > >> />>>>>>>>>>/ is wrong. > >> />>>>>>>>>>/ Then i would like to check data where output from LPS. > >> />>>>>>>>>>/ At the point of FileUtils.java, i add some code like > >> following > >> />>>>>>>>>>/ (BlockName-A). > >> />>>>>>>>>>/ But it got unreadable data to write lps.log as following. > >> />>>>>>>>>>/ How can i get 'readable' log on lps.log ? > >> />>>>>>>>>>/ > >> />>>>>>>>>>/ <checking code on FileUtils.java> > >> />>>>>>>>>>/ public static int sendToStream(InputStream input, > >> />>>>>>>>>>/ OutputStream output, int size) > >> />>>>>>>>>>/ throws IOException { > >> />>>>>>>>>>/ int c = 0; > >> />>>>>>>>>>/ byte[] buffer = new byte[size]; > >> />>>>>>>>>>/ int b = 0; > >> />>>>>>>>>>/ while(true) { > >> />>>>>>>>>>/ try { > >> />>>>>>>>>>/ // Until end of stream > >> />>>>>>>>>>/ if ((b = input.read(buffer)) <= 0) { > >> />>>>>>>>>>/ return c; > >> />>>>>>>>>>/ } > >> />>>>>>>>>>/ } catch (IOException e) { > >> />>>>>>>>>>/ throw new StreamReadingException(e.getMessage()); > >> />>>>>>>>>>/ } > >> />>>>>>>>>>/ c += b; > >> />>>>>>>>>>/ try { > >> />>>>>>>>>>/ output.write(buffer, 0, b); > >> />>>>>>>>>>/ > >> />>>>>>>>>>/ //=== adding from here BlockName-A > >> />>>>>>>>>>/ { > >> />>>>>>>>>>/ String aString = new String(buffer, "UTF-8"); > >> />>>>>>>>>>/ mLogger.debug( "OUTPUT: " + aString ); > >> />>>>>>>>>>/ } > >> />>>>>>>>>>/ //=== to here > >> />>>>>>>>>>/ > >> />>>>>>>>>>/ <lps.log> > >> />>>>>>>>>>/ OUTPUT: FWS 4 x F ? ` > >> />>>>>>>>>>/ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx? ? ?0 _m _t CSPCHD id > >> />>>>>>>>>>/ AddLongResponse AddLongResult ? _m _root /? _m N > >> ? _t >>>>>>>>>>/ _root /? > >> >>>>>>>>>>/ _t N > >> /? ? _root ? > >> >>>>>>>>>>/ _rootndi RL? C? =L? C? =L?; > >> />>>>>>>>>>/ > >> 0000000100001gUD5zy4000000XKonfBejSj6FIgaG0jaWHQ-- = ? > >> />>>>>>>>>>/ ? > >> />>>>>>>>>>/ _root /? _finishndi R? B? ? _root ? > >> >>>>>>>>>>/ _rootndi RL? C? =L? C? =L? > >> />>>>>>>>>>/ GHGHGH = ? ? _root /? _finishndi R? B? > >> >>>>>>>>>>/ _parent /? ? > >> >>>>>>>>>>/ _parent /? loader N? returnData R @ > >> >>>>>>>>>>/ > >> />>>>>>>>>>/ Thanks any advance. > >> />>>>>>>>>>/ > >> />>>>>>>>>>/ Keiji Ono > >> />>>>>>>>>> > > > > -- Henry Minsky Software Architect [EMAIL PROTECTED]
