Glen,



On Monday 18 February 2008, Glen Mazza wrote:
> Can I program an interceptor in a web service's incoming interceptor
> chain to dynamically route to another interceptor other than the one
> predefined in its chain (and ignore all subsequent interceptors in the
> predefined chain)?

Kind of yes.   

Basically, there are a couple ways to do it.   One option is to grab the 
current InterceptorChain and remove everything you don't want (or comes 
after your interceptor).    I believe you can just get the Iterator from 
the chain and use the remove methods on that.  I think they are 
implemented.    Then add in everything you do want.

Another option is to create a whole new chain (you could have chains 
cached with the PhaseChainCache stuff) with the new stuff you want.   In 
your interceptor, you would pause the current chain (so nothing else 
would get called later) and then call newChain.processmessage(msg);

Dan


>
> In other words, for an interceptor chain A->B->C->D, can I add
> business logic in interceptor A for it to route to A->E->F->G instead?
>  In particular, I would like to avoid it doing A->E->F->G->B->C->D if
> I can, i.e., once I reroute, I don't want it to return to the other
> interceptors in the predefined chain.
>
> Thanks,
> Glen



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to