Re: [Laszlo-dev] SOAPElement class implementation
Benjamin Shine
ben at laszlosystems.com
Thu Oct 25 18:24:15 PDT 2007
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