Mark –

 

Changing the service class could be performed by either a custom provider, or, re-mapping the service information via a handler.

 

If using a custom provider:   Because there is currently a one-to-one relationship between the service object and the service endpoint class (See org.apache.axis.deployment.wsdd.WSDDService and the cachedService attribute) you would probably need to code some cool extensions. Check out getServiceObject() and getNewServiceObject() and getServiceClass() in org.apache.axis.providers.java.JavaProvider for how the service objects are currently initialized.

 

Re-mapping could be easier, but is a bit of a hack….. deploy a private (not external documented) service into the Axis registry per service endpoint class. Use a derivation of the URLMapper handler to initialize the service name in MessageContext based on your flow control logic and the rest of the message processing pipeline will flow normally.  The downside is that multiple, *private internal* services must be registered. Upside is loading the classes is automagic.

 

 

Changing the service method is fairly easy via a standard custom provider.  You’ll need to override the standard processMessage() method.  Though watch out for the initServiceDesc() and all the parameter matching checks inside the current RPCProvider version processmethod() [if you are using that as your basis for your extensions].

 

Or, maybe Apache WSIF does the use cases automagically today???

 

/Chris

 

-----Original Message-----
From: Mark [mailto:[EMAIL PROTECTED]
Sent:
Thursday, November 13, 2003 6:16 AM
To: [EMAIL PROTECTED]
Subject: Re: Changing the flow of SOAP

 

Chris

Thanks for your reply. Basically I want to do the last two

" the invocation of an alternative Java class as the
service endpoint  and calling an alternative method on the registered
service endpoint class " Pls point me to any code samples..
TIA

Mark

 

Mark -
It depends at what level you would like to conditionally call the code.
Are you interested in the conditional execution of a 'handler' in the
message pipeline, or the invocation of an alternative Java class as the
service endpoint?  Or calling an alternative method on the registered
service endpoint class?
If you can outline your specific use case, it will help determine the
proper interface point with the Axis architecture.
/Chris
http://cvs.apache.org/~haddadc
Co-Author of O'reilly's Axis: The Definitive Guide, to be published in
2004

Mark <[EMAIL PROTECTED]> wrote:

Guys

Is there a way to change the flow of a normal SOAP message ? i.e. when a msg comes to the SOAP engine instead of following the normal path it should call up one of our own methods..? Can some one point me to sample code/docs?

 

Does "Providers" do this?

 

tx

Mark


Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard


Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard

Reply via email to