Hi,

I found a problem of SOAP action between 3.3.3 and latest nighty build
(4.1.x).
With a same LZX application and using SOAP data I/F.
3.3.3 could send data to LPS, but the nighty could not.
ex.
send data 'burabura'
debugging 'lzpostbody' in SOAPDataSource.java
on 3.3.3: <some tag>[![CDATA[burabura]]</some tag>
on 4.1.x: <some tag/>
* in effect, those data were encoded.

SOAPDataSource.java had not any changes between them.
Are there some changing data interface specifications?
I confirmed it was OK till 4.0.3, but 4.0.5 and later were NG.

Regards,
Keiji Ono

Henry Minsky wrote:

>
>
> On 10/30/07, keiji Ono <[EMAIL PROTECTED]
> <mailto:[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
>     
> <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/
>     <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
>     <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 4xF?`
>     >> />>>>>>>>>>/ 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] <mailto:[EMAIL PROTECTED]>
>

Reply via email to