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