It appears you need to write a Handler which wraps your dispatcher but which is independent of the classes that implement services.
Then there are (at least) a couple of ways of making the engine call such a Handler. For instance, you can supply an EngineConfiguration that returns such a Handler from getService. Or you could override the whole Handler infrastructure of AxisServer by setting the option named MessageContext.ENGINE_HANDLER and supplying an EngineConfiguration that returns your dispatcher Handler from getHandler with the appropriate name. Hopefully this will give you enough to go on... Glyn
