I'm trying to reproduce the bug now.
On Nov 26, 2007 11:59 PM, keiji Ono <[EMAIL PROTECTED]> wrote: > > Hi Henry, > > I have informed you about SOAP issue. > I have also attached the test programs. They were very simple test > programs. > You could located the jws file at $TOMCAT_HOME/webapps/axis and the > soaptest3.lzx at > your $LPS_HOME. I tested it with SWF and also they were tested on the same > tomcat( 5.0.30 ). > When i checked it with lps-3.3.3, it worked fine, but using the latest > nighty( rev 7378 ) did not worked. > The mean of the 'did not worked' was it did not shown the return strings > in the result text field. > The return strings did not returned from the server side to the client. > You can find it at as following the > messages. > Also i am going to chase this issue in nighty source, but i know you can > find it out faster than me. :^) > Those are the message in the debug window. > > Case: lps-3.3.3 > <whatString > xmlns="http://localhost:8080/axis/SoapStringSimpleReturn.jws"><s></s></whatString> > <whatString > xmlns="http://localhost:8080/axis/SoapStringSimpleReturn.jws"><s>aa</s></whatString> > > Case: Nighty ( rev 7378 ) > <whatString > xmlns="http://localhost:8080/axis/SoapStringSimpleReturn.jws"><s></s></whatString> > __LZloaderReturnData data= {..., stubinfo: [object Object], stub: [object > Object]} > ... loadmc= «LoadObj#1| soap://soap (loading)» > ...responseheaders= undefined > {..., stubinfo: [object Object], stub: [object Object]} > __LZloaderReturnData data= <whatString > xmlns="http://localhost:8080/axis/SoapStringSimpleReturn.jws"><s></s></whatString> > ... loadmc= «LoadObj#1| soap://soap (loading)» > ...responseheaders= null > rpc.lzx _handler {status: ok, message: ok, data: <whatString > xmlns="http://localhost:8080/axis/SoapStringSimpleReturn.jws"><s></s></whatString>, > opinfo: [object Object], seqnum: 1} > <whatString > xmlns="http://localhost:8080/axis/SoapStringSimpleReturn.jws"><s></s></whatString> > > > Regards, > > > Keiji Ono > > > keiji Ono wrote: > > Hi Henry, > > I am preparing a small piece of this issue. > Because the original test case was a bit special. > So i build it on Axis environment. I am going to make it in this week. > Please wait for a few days. > > Thanks > Keiji Ono > [EMAIL PROTECTED] > > Henry Minsky wrote: > > > I'll try and see if there was any change to the code paths between > 4.0.3 and 4.0.5. > > Do have a small piece of test code that I can run to confirm that I am > reproducing the issue? If so, can you attach that to a bug report and file > it in JIRA? Send me an email when you do that, and I will take a look. > > > On 11/5/07, keiji Ono <[EMAIL PROTECTED]> wrote: > > > > 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]> 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] > > > public class SoapStringSimpleReturn { > private String returnString = new String(); > /* > public String getReturnString() { > return returnString; > } > > public void setReturnString(String returnString) { > this.returnString = returnString; > } > */ > public String whatString( String s ){ > return s; > } > } > > -- Henry Minsky Software Architect [EMAIL PROTECTED]
