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