Ajith and Saminda, thanks for replying. However, the problem still persists
@Ajith!
The response is almost instantaneous. Also to be on safe side I did make the while loop run hundred times longer by increasing the Thread.sleep(100 times the original value). Still no luck!
@Saminda!
Saminda, nowhere in my application I was calling a call.close() at all. Even in the execution flow of underlying Axis2 code nowhere call.close() was called either. There is no close() method in the Call.java in my code base. Did that get added very recently?
Some notes of my observations of what Axis2 is doing on the client side.
(i) CommonsHTTPSender is the underlying handler that did the job of finally sending the content to the endpoint and also it did get back a valid response as an inputstream
(ii) Next in its processResponse() method commonsHTTPSender put the response inputstream into msgContext as the value of TRANSPORT_IN property.
msgContext.getOperationContext().setProperty(
MessageContext.TRANSPORT_IN,
in);
MessageContext.TRANSPORT_IN,
in);
(iii) But nowhere after that, this TRANSPORT_IN property is read by anyone to read and update the call back.
Shouldn't there be an invocation of receiver to read in the response inputstream somewhere *after* engine.send() is fired.
Can someone look into this or suggest some work around, if any, for now
Thanks
Jayachandra
On 9/2/05, Ajith Ranabahu <[EMAIL PROTECTED]> wrote:
Hmmm..
Perhaps the timeout is not enough. We definiltely have to introduce a configurable timeout here. BTW have you tried increasing the timeout ?--
On 9/2/05, jayachandra <[EMAIL PROTECTED] > wrote:Hi!When I invoked a call.invokeBlocking() routine, internally it is simulated using invokeNonBlocking() using a call back mechanism. However, even though the server sent a valid response (this I verified with TCPmon) the call back class is not getting properly updated with the result. Is this a known issue? Can someone clarify this. The error I am getting is...Time out while waiting for the server to send the response
at org.apache.axis2.clientapi.InOutMEPClient.invokeBlocking(InOutMEPClient.java:144)
at org.apache.axis2.clientapi.Call.invokeBlocking(Call.java:89)
at org.apache.axis2.saaj.SOAPConnectionImpl.call(SOAPConnectionImpl.java:72)
which essentially is arising from the code block in InOutMEPClient.java which looks like follows.(Line Numbers 135 to 146 of InOutMEPClient.invokeBlocking() method) ::while (!callback.isComplete()) {
//wait till the reponse arrives
if (index++ < 20) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
throw new AxisFault(e);
}
} else {
throw new AxisFault(Messages.getMessage("responseTimeOut")); << This is the reported error
}
}Any help in this regard will be much appreciated.ThanksJayachandra
--
-- Jaya
Ajith Ranabahu
--
-- Jaya
