Jay,

How exactly have you tried to do this with Axis2?  If I am understanding 
your situation, we are currently doing something like this successfully. 
We have a centralized service broker based on Axis2 that accepts incoming 
requests and can then route them to our mainframe, other applications, or 
other web services as needed.   We are not using the standard axis2 war 
distribution, however.  We already had an Enterprise Application (EAR) 
running on WebSphere 6.0 that already contained a web application, so we 
simply added a Websphere shared library containing the Axis2 files to the 
EAR.  Then, by enabling the AxisServlet in our web application, we had the 
inbound support provided by Axis2.  We are also using Axis2 stubs to make 
outbound web service calls from within the application.  I'm not sure if 
there is something specific about our setup that is different than yours, 
but I can easily process many inbound service requests that in turn make 
outbound requests to other services and have not had any memory issues. 

Here is a very simplified model of the application:

Inbound Message is received by Service A 
Message is validated and converted using ADB objects
Payload is sent to our Service Controller, which acts as a router
If appropriate, we make an outbound web service (Service B) call to obtain 
data from an external source
Response is returned through the Service Controller back as the response 
to the original service request


Wally





"Jay Chauhan" <[EMAIL PROTECTED]> 

08/07/2008 01:37 PM
Please respond to
[email protected]



To
[email protected]
cc

Subject
Re: Axis2 Webservice called from another websiervice






Hi Chris, 

I really appreciate you taking time to share your experiences while 
calling one webservice from another.

I fully agree with you that this issue has never been addressed even when 
jira says that it is resolved. Furthermore, I also searched all of the 
mailing list and this issue was raised a few times before but there are no 
indications of going it anywhere.

This is certainly is one of the bigger drawbacks of Axis2 stack and I hope 
Axis team does something about it before more people move away from Axis2.

In the mean time after spending few days and going no where i also went 
another route and now i am using Messaging Middleware to make the call to 
second webservice, this is not the most elegant solution, but this it 
works and it is the only choice I have at this time.

Thanks agin for your time Chris,

-Jay



On Thu, Aug 7, 2008 at 1:36 AM, Chris Richmond <[EMAIL PROTECTED]> 
wrote:
Good luck with that.
 
I had a project a few months ago where I had one proxy webservice in Axis2 
hosted in tomcat that called another webservice and could NEVER get it to 
work.  It would crash after 10 calls or so within a minute, create phantom 
services after calls to the proxy service side, and the method signatures 
of those "phantom " services exactly matched the methods on my client 
proxies to the 2nd service?in short..there are MAJOR in memory collisions 
taking place whereas the Axis2 stack gets confused.   All in all, it was a 
miserable failure for using one service calling another, which is 
practically SOP in the WS world and I've done it with every other WS stack 
I've used.  In the end I had to retool my middleware layer to use another 
WS stack.
 
I believe this is a difficult problem or bug as I never got a single 
answer or hint from many, many mails to this and other lists that was 
related to the problem.  This problem might have been resolved, but I 
never found a resolution, and the nature of the responses I got indicates 
to me that no one ever really understood the problem?either from my lack 
of ability to communicate it in several attempts or due complex systematic 
nature of the problem(not an easily identifiable defect). 
 
If you ever successfully get Axis2 webservice calling another webservice 
working and working at production levels, I'd love to hear how you did it.
 
Chris
 

From: Jay Chauhan [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 06, 2008 9:45 PM

To: [email protected]
Subject: Re: Axis2 Webservice called from another websiervice
 
Hi Lars, 

In order to eliminate that possibility I have created a static method 
ServiceBClient.callService()  which works just fine if i call from stand 
along program, so the ports  and URLs are Okay. Problem, happens only when 
i call it from within another service.

As an interim solution I am using messaging to call one service from 
another , however, i always why wonder why a webservice should not be 
callable from each other.

Thanks, 

-Jay




On Wed, Aug 6, 2008 at 11:55 PM, Lars Ericsson <[EMAIL PROTECTED]> 
wrote:
Hi Jay!
 
Also, you try run your client from webserviceA and you get those 
error-messages!
The errors are about addressing problem. have you check the if your url, 
and port are right?
 
/l
 
 
----- Original Message ----
From: Jay Chauhan <[EMAIL PROTECTED]>
To: [email protected]; [EMAIL PROTECTED]
Sent: Friday, August 1, 2008 10:57:02 PM
Subject: Re: Axis2 Webservice called from another websiervice
Hi Axis Team, 

I did some looking around and it is claimed to have fixed in jira 

http://issues.apache.org/jira/browse/AXIS2-2231 

However, the problem still exists, I wonder if someone can give a reply, 

Thanks, 

-Jay
 
On Thu, Jul 31, 2008 at 10:12 PM, Jay Chauhan <[EMAIL PROTECTED]> 
wrote:
Hi, 

I have two Axis2 webservices, A and B. these services use AXIOM 
databinding.

I have a client ServiceBClient.java , when I call the 
SericeBClient.callService() from standalone program it works just fine as 
it should. However, when I try to call the same code from within Service A 
 then i get the following error:

=====================
[WARN] triggerActionNotSupportedFault: messageContext: [MessageContext: 
logID=urn:uuid:02DD9A9B9453513B981217564336177] problemAction:\
 urn:anonOutonlyOpResponse
[ERROR] The [action] cannot be processed at the receiver.
org.apache.axis2.AxisFault: The [action] cannot be processed at the 
receiver.
        at 
org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:373)
        at 
org.apache.axis2.addressing.AddressingFaultsHelper.triggerActionNotSupportedFault(AddressingFaultsHelper.java:336)
        at 
org.apache.axis2.handlers.addressing.AddressingValidationHandler.checkAction(AddressingValidationHandler.java:149)
        at 
org.apache.axis2.handlers.addressing.AddressingValidationHandler.invoke(AddressingValidationHandler.java:55)
=====================

I have the services.xml as suggested in  AXIOM service section of Quick 
start guide:   http://ws.apache.org/axis2/1_4/quickstartguide.html

What can I do to call a webservice from another, 

Any suggestion is appreciated.

-Jay



 
 
 





The information contained in this e-mail and any accompanying documents may 
contain information that is confidential or otherwise protected from 
disclosure. If you are not the intended recipient of this message, or if this 
message has been addressed to you in error, please immediately alert the sender 
by reply e-mail and then delete this message, including any attachments. Any 
dissemination, distribution or other use of the contents of this message by 
anyone other than the intended recipient is strictly prohibited. All messages 
sent to and from this e-mail address may be monitored as permitted by 
applicable law and regulations to ensure compliance with our internal policies 
and to protect our business. E-mails are not secure and cannot be guaranteed to 
be error free as they can be intercepted, amended, lost or destroyed, or 
contain viruses. You are deemed to have accepted these risks if you communicate 
with us by e-mail. 


Reply via email to