[Laszlo-dev]  SOAPElement class implementation

keiji Ono keiji_ono at net8.co.jp
Thu Oct 25 19:05:36 PDT 2007


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: FWS4 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
>>>>>>>>>>


More information about the Laszlo-dev mailing list