Has this been identified as a bug in Axis2 v1.1.1? Is it fixed in a
later version? I am experiencing the same problem using Axis2 v1.1.1,
Spring v2.0 and exposing a POJO as a web service.
Thx,
August
Hi,
sorry for cross posting also on the user mailinglist but I think I found a
bug.
I use Axis2 with a POJO and the HTTP transport session with in an AJAX
application. The SOAP response (only the method name) is false for more than
one request at the same time. The POJO is thread save.
Eg.
If I send (asynchron) request1 (which takes longer than request2) and than
request2, the first child oh the SOAP Body of request2 shows the method name
of request1. I get ns:getDatabaseResponse from the other response but the
right response should be ns:getDataSetsResponse. If I call the method
"alone" the response is right.
->Wrong response
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<http://schemas.xmlsoap.org/soap/envelope/>><soapenv:Body><ns:getDatabas \
eResponse xmlns:ns="http://webservice.Test.polo.sun/xsd"
<http://webservice.Test.polo.sun/xsd>><ns:return>Base1</ns:return>< \
ns:return>Base2</ns:return></ns:getDatabaseResponse></soapenv:Body></soapenv:Envelope>
\
->Right response
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<http://schemas.xmlsoap.org/soap/envelope/>><soapenv:Body><ns:getDataSet \
sResponse xmlns:ns="http://webservice.Test.polo.sun/xsd"
<http://webservice.Test.polo.sun/xsd>><ns:return>Base1</ns:return>< \
ns:return>Base2</ns:return></ns:getDataSetsResponse></soapenv:Body></soapenv:Envelope>
\
I also attached some files for testing.
Can somebody help me? Thanks a lot.
Chris
*["POJOTest.java" (application/octet-stream)]*
<http://marc.info/?l=axis-dev&m=117393549420615&q=p3>
*["services.xml" (text/xml)]*
<http://marc.info/?l=axis-dev&m=117393549420615&q=p4>
<service name="POJOTest" scope="transportsession">
<description>
POJOTest Webservice
</description>
<messageReceivers>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-only"
<http://www.w3.org/2004/08/wsdl/in-only>
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-out"
<http://www.w3.org/2004/08/wsdl/in-out>
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">
pojo.POJOTest
</parameter>
</service>
*["pojo.html" (text/html)]*
<http://marc.info/?l=axis-dev&m=117393549420615&q=p5>
<html>
<head>
<script type="text/javascript">
<!--
var http_request1;
var http_request2;
function doRequest1(){
document.getElementById('request1').innerHTML = "Loading Data";
http_request1 = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request1 = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request1 = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request1 = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request1) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request1.onreadystatechange = renderRequest1;
http_request1.open('POST', "/axis2/services/POJOTest", true);
var r = "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope \
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
<http://schemas.xmlsoap.org/soap/envelope/%5C>><soapenv:Body><ns:method1 \
xmlns:ns=\"http://pojo/xsd\"
<http://pojo/xsd%5C>><ns:param0>Hello1</ns:param0></ns:method1></soapenv:Body> \
</soapenv:Envelope>";
http_request1.send( r );
}
function renderRequest1(){
if (http_request1.readyState == 4) {
if (http_request1.status == 200) {
var response = http_request1.responseXML;
//alert( response );
var tz =
response.getElementsByTagName('method1Response').item(0).firstChild.first \
Child.data;
document.getElementById('request1').innerHTML = tz;
} else {
var error = http_request1.responseText;
alert( error );
}
}
}
function doRequest2(){
document.getElementById('request2').innerHTML = "Loading Data";
http_request2 = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request2 = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request2 = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request2 = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request2) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request2.onreadystatechange = renderRequest2;
http_request2.open('POST', "/axis2/services/POJOTest", true);
var r = "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope \
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
<http://schemas.xmlsoap.org/soap/envelope/%5C>><soapenv:Body><ns:method2 \
xmlns:ns=\"http://pojo/xsd\"
<http://pojo/xsd%5C>><ns:param0>Hello2</ns:param0></ns:method2></soapenv:Body> \
</soapenv:Envelope>";
http_request2.send( r );
}
function renderRequest2(){
if (http_request2.readyState == 4) {
if (http_request2.status == 200) {
var response = http_request2.responseXML;
//alert( response );
var tz = response.getElementsByTagName('method2Response').item(0);
if(!tz){
alert("Response Type is wrong");
}
document.getElementById('request2').innerHTML =
tz.firstChild.firstChild.data;;
} else {
var error = http_request2.responseText;
alert( error );
}
}
}
function doRequest4(){
document.getElementById('request4').innerHTML = "Loading Data";
http_request4 = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request4 = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request4 = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request4 = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request4) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request4.onreadystatechange = renderRequest4;
http_request4.open('POST', "/axis2/services/POJOTest", true);
var r = "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope \
xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
<http://schemas.xmlsoap.org/soap/envelope/%5C>><soapenv:Body><ns:method2 \
xmlns:ns=\"http://pojo/xsd\"
<http://pojo/xsd%5C>><ns:param0>Hello2</ns:param0></ns:login></method2:Body></ \
soapenv:Envelope>";
http_request4.send( r );
}
function renderRequest4(){
if (http_request4.readyState == 4) {
if (http_request4.status == 200) {
var response = http_request4.responseXML;
//alert( response );
var tz = response.getElementsByTagName('method2Response').item(0);
if(!tz){
alert("Response Type is wrong");
}
document.getElementById('request4').innerHTML =
tz.firstChild.firstChild.data;;
} else {
var error = http_request4.responseText;
alert( error );
}
}
}
function doboth(){
doRequest2();
setTimeout("doRequest1()",1000);
}
-->
</script>
</head>
<body>
<a href="#" onClick="doRequest1()">Requet1</a>
<p>
<a href="#" onClick="doRequest2()">Requet2</a>
<p>
<a href="#" onClick="doboth()">Both - Problem</a>
<p>
<div id="request1"></div>
<p>
<div id="request2"></div>
</body>
</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]