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-----
Chris Thanks for your reply. Basically I want to do the last two " the invocation of an alternative Java class as
the Mark
Mark - 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!? Do you Yahoo!? |
- Changing the flow of SOAP Mark
- RE: Changing the flow of SOAP chris
- Re: Changing the flow of SOAP Mark
- chris