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]

Reply via email to