I have filed this issue in JIRA. LPP-5172.

Henry Minsky wrote:

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;
       }
}

Reply via email to