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. > >
