Ok, I have created a test java application that simple loops and creates an ADB proxy on each loop. So it takes my webservice out of the mix, and I still get this exception after trying to call it several times in succession, so it appears that trying to create many ADB clients in rapid succession is a problem alone?
UsersStub is the stub generated with wsdl2java using ADB. Here is the code I ran: for (int x = 0; x < 100; x++) { try { UsersStub stub = new UsersStub(); stub._getServiceClient().setTargetEPR(new EndpointReference("xxxxxxxxxxxxxx")); CreateAccount req = new CreateAccount(); CreateAccountResponse resp; req.setAdmin_wsid(12345678); req.setAdmin_pw("password"); req.setEmail(x + "[EMAIL PROTECTED]"); req.setEmaillevel(3); req.setGvisible(Short.parseShort("1")); req.setName(x + "zzz"); req.setPassword("password"); req.setUserid(x + "zzz"); resp = stub.CreateAccount(req); System.err.println("added user: " + x); } catch (AxisFault ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } catch (RemoteException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } added user: 0 added user: 1 added user: 2 added user: 3 added user: 4 added user: 5 added user: 6 added user: 7 added user: 8 added user: 9 May 7, 2008 11:04:14 AM clienttester.Main main SEVERE: null org.apache.axis2.AxisFault: Transport error: 403 Error: Access Forbidden at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:29 8) at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:192) at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithC ommons(CommonsHTTPTransportSender.java:327) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTT PTransportSender.java:206) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperatio n.java:374) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisO peration.java:211) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163) at com....proxies.UsersStub.CreateAccount(UsersStub.java:208) at clienttester.Main.main(Main.java:57) _____ From: Chris Richmond [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 07, 2008 9:58 AM To: axis-user@ws.apache.org Subject: remaining 403 errors Hello again, I have been working on this issues off an on for weeks now and still cannot resolve it. I have a Tomcat Axis2 webservice that provides a CreateUser method, and when clients call that method my service in turn uses ADB generated proxies to a third party service and makes calls there. I have verified I can make calls from a client to the 3rd party service in loop of several hundred in a few seconds, no problem. I commented out the code that makes the call to the the ADB proxy to 3rd party service in my service method and have verified that I can call my service endpoint and it does it's other word(db inserts) besides the ADB stub creation no problem with several hundred in a few seconds. UsersStub us = this.getUsersStub(); req.setAdmin_wsid(admin.getWsid()); req.setAdmin_pw(Config.getCasJobsSystemPassword()); req.setEmail(newUser.getEmail()); req.setEmaillevel(newUser.getEmailLevel()); short gvis = 0; if (newUser.isGvisible()) { gvis = 1; } req.setGvisible(gvis); req.setName(newUser.getName()); req.setPassword(newUser.getPassword()); req.setUserid(newUser.getUserID()); // resp = us.CreateAccount(req); The code above is what I run(last line, actual call to 3rd party webservice commented out) and that runs hundreds of time in rapid succession no problem, so instantiating the stub is not an issue(I think). When I uncomment the actual call then I call my service which runs this code, then after about 15 calls in succession I get the error: org.apache.axis2.AxisFault: Transport error: 403 Error: Access Forbidden at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender. java:298) at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.jav a:192) at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessa geWithCommons(CommonsHTTPTransportSender.java:327) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(Com monsHTTPTransportSender.java:206) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396) at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisO peration.java:374) at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(Out InAxisOperation.java:211) at org.apache.axis2.client.OperationClient.execute(OperationClient.java: 163) at com.referentia.mleadr.ws.casjobs.proxies.UsersStub.CreateAccount(User sStub.java:208) at com.referentia.mleadr.users.AbstractUserManager.createUser(AbstractUs erManager.java:115) at com.referentia.mleadr.ws.services.UserService.createUser(UserService. java:76) at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.jav a:194) at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic (RPCMessageReceiver.java:98) at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusines sLogic(AbstractInOutMessageReceiver.java:40) at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMe ssageReceiver.java:96) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReq uest(HTTPTransportUtils.java:275) at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:1 20) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j ava:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav a:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce ss(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44 7) at java.lang.Thread.run(Thread.java:619) I have configured tomcat to use more memory at startup as well as max, but that has no effect. I can not figure out what the problem is. And a related issue that shows up is that after get this error, may times viewing the /ListServices in Axis2 page shows "phantom" services that show up. Services that are named the same as my proxy class method call(to the 3rd party ws) and the method parameters are exactly the same as what I have on my stub method to that other services. This phantom service goes away after I restart the server, so this is some in memory error. I seems to me as if there is some memory conflict while trying to use the axis2 stack inside tomcat to both handle my service impl classes and create /call ADB classes that are generated stubs to other services, as if the axis stack thinks that some of my stubs that I create to passthrough to the other service are actual endpoints for my service. I have not been able to figure this out at all and have tried changing all sorts of configuration settings with no luck. No one has ever had any idea on this problem that I have talked to, but it seems to me that Axis2 just cannot handle using it as I am, where I handle calls and create stubs to other services as a passthrough sort of service? Is there something special I need to do to do this with Axis2? This is very confusing and I don't get it resolved I guess I just wont be able to use Axis2 for this, which will not be fun considering I've implemented the entire service. If anyone has any insights whatsoever as to what the problem might be or what I might investigate next, I would greatly appreciate those. Thanks, Chris