[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