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

Reply via email to