Rafael, I had exactly the same problem over here. In my case, I used Tomcat servlet container to run Axis2 server (JAX-WS Web Services).
In this case, when I tried to shutdown my server, It throw messages accusing instances that cannot be deallocated. I solve that problem with an Amila's blog post, http://amilachinthaka.blogspot.com/2009/05/improving-axis2-client-http-transport.html. Good luck. Bruno Simioni. On Tue, Jan 5, 2010 at 12:31 PM, Rafael Barrera Oro <boraf...@gmail.com>wrote: > Hello! > > I have a sample axis2 client where everything i do is invoking a web > service, the problem is that the third time i invoke such webservice it > always throws a timeout exception. I guess this has to do with some > connection limit or something but after checking axis2.xml i was not able to > find out how to solve the issue. > > I guess there is a way to tell the axis2 server to keep alive the > connection or close it after its been used. I am no expert here, but it > looks like a connection pooling issue to me. > > Thanks in advance! > > Here is the code: > > public class Axis2Client { > > /** > * @param args > */ > public static void main(String[] args) { > Object[] datosUsuario; > String user = "user"; > String pass = "pass"; > > try{ > //first invocation > datosUsuario = invokeWebService(" > http://localhost:8180/axis2/services/LoginService", "login", new Object[] > {user, pass},new Class[] { Long.class, String.class, String.class, > String.class}); > > for(int i = 0; i < datosUsuario.length; i++) > System.out.println(i + " -> " + datosUsuario[i]); > > //second invocation > datosUsuario = invokeWebService(" > http://localhost:8180/axis2/services/LoginService", "login", new Object[] > {user, pass},new Class[] { Long.class, String.class, String.class, > String.class}); > > for(int i = 0; i < datosUsuario.length; i++) > System.out.println(i + " -> " + datosUsuario[i]); > > //third invocation > datosUsuario = invokeWebService(" > http://localhost:8180/axis2/services/LoginService", "login", new Object[] > {user, pass},new Class[] { Long.class, String.class, String.class, > String.class}); > > for(int i = 0; i < datosUsuario.length; i++) > System.out.println(i + " -> " + datosUsuario[i]); > > } > catch(Exception e){ > e.printStackTrace(); > } > > } > > public static Object[] invokeWebService(String endPoint, String op, > Object[] opArgs, Class[] returnTypes) throws AxisFault{ > RPCServiceClient serviceClient; > Options options; > EndpointReference targetEPR; > QName opQName; > Object[] response = new Object[]{}; > > //inicializo el cliente > serviceClient = new RPCServiceClient(); > options = serviceClient.getOptions(); > > //establezcp el endpoint > targetEPR = new EndpointReference(endPoint); > options.setTo(targetEPR); > > //establezco la operacion > opQName = new QName(" > http://services.spring.webservices.dietaclub.akyasociados.com.ar", op); > > //invoco el web service utilizando los parametros y los tipos que > espero que me sean devueltos > try{ > response = serviceClient.invokeBlocking(opQName, opArgs, > returnTypes); > } > catch(AxisFault e){ > e.printStackTrace(); > throw e; > } > catch(Exception e){ > e.printStackTrace(); > } > > return response; > } > } > > Here is the exception: > > org.apache.axis2.AxisFault: Timeout waiting for connection > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > at > org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:203) > at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76) > at > org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400) > at > org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225) > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435) > at > org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) > at > org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) > at > org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) > at > org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:540) > at > org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:521) > at > org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102) > at Axis2Client.invokeWebService(Axis2Client.java:88) > at Axis2Client.main(Axis2Client.java:54) > Caused by: org.apache.commons.httpclient.ConnectionPoolTimeoutException: > Timeout waiting for connection > at > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:497) > at > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416) > at > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) > at > org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542) > at > org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199) > ... 12 more > org.apache.axis2.AxisFault: Timeout waiting for connection > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) > at > org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:203) > at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76) > at > org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400) > at > org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225) > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435) > at > org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402) > at > org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) > at > org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) > at > org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:540) > at > org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:521) > at > org.apache.axis2.rpc.client.RPCServiceClient.invokeBlocking(RPCServiceClient.java:102) > at Axis2Client.invokeWebService(Axis2Client.java:88) > at Axis2Client.main(Axis2Client.java:54) > Caused by: org.apache.commons.httpclient.ConnectionPoolTimeoutException: > Timeout waiting for connection > at > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:497) > at > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416) > at > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) > at > org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542) > at > org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199) > ... 12 more >