The design intention is that this is your problem. You can pass a
different function in as the success function each time, or you can
concoct a closure that associates the requests. The bug is that this
intended design didn't get implemented properly because i fell asleep.


On Tue, Jul 22, 2008 at 3:13 PM, Christine (JIRA) <[EMAIL PROTECTED]> wrote:
>
>    [ 
> https://issues.apache.org/jira/browse/CXF-1713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615745#action_12615745
>  ]
>
> Christine commented on CXF-1713:
> --------------------------------
>
> Whatever solution you come up with, the js client will have to decide where 
> to put the response based on the response it gets from the server. I mean, 
> you send request A and request B shortly after one another, and you don't 
> know which one will receive a response first. When the first response comes 
> in, you have to identify it from the message or the envelope or whatever you 
> have that comes back. I don't know enough about web services to be of any 
> help here, I guess.
> Why exactly can't you pick the function name from the message? I saw that the 
> original function name is in the response header, there should be a point 
> after receiving the message and before handing it to the user response 
> function, where you can set the proper response function name.
>
>> Generated Javascript does not handle simultaneous soap requests correctly
>> -------------------------------------------------------------------------
>>
>>                 Key: CXF-1713
>>                 URL: https://issues.apache.org/jira/browse/CXF-1713
>>             Project: CXF
>>          Issue Type: Bug
>>          Components: JavaScript Client
>>         Environment: linux64 ubuntu firefox 3.0
>>            Reporter: Christine
>>            Assignee: Benson Margulies
>>            Priority: Minor
>>
>> I use the js client code as dynamically provided by cxf. My js client, which 
>> is modeled after the helloworld example, generates two soap requests. The 
>> second request is issued before the first has completed. What happens is 
>> that the response to the first request gets handled by the response handler 
>> of the second request. this is my code (I have added an additional "sayIt" 
>> to demo the issue)
>> function saySomething(formObj)
>> {
>>       saveText = formObj.textField.value;
>>       formObj.textField.value = "";
>>       userId=readCookie();
>>       if (userId == null || userId.length < 20)
>>       {
>>          register(userId);
>>          sayIt(userId, "hi");
>>       } else {
>>          sayIt(userId, saveText);
>>       }
>> }
>> The response to the "register(userid)" is handled by the response function 
>> for the SayIt function. I have solved the problem in my code by making the 
>> sayIt wait until the responst to the register has been processed.
>> What I think that happens is the following. The cxf js code sets the 
>> response functions in function soap__say_op:
>>     this._onsuccess = successCallback;
>>     this._onerror = errorCallback;
>> When a response comes in, the onsuccess or onerror function is used that has 
>> last been set. What should happen is that the name of the response function 
>> is taken from the xml response, 
>> xmlresponse.firstchild.firstchild.firstchild.localname. There is a  function 
>> org_apache_cxf_deserialize_anyType that does seem to take the tag name from 
>> the xml, but this is not used in the response handling that I have seen.
>> My js client runs in FireFox 3.0 on Ubuntu linux 64 bits. I have tested on 
>> IE7 on Windows XP with the same results. I use cxf 2.1.1.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

Reply via email to