One important addendum to my note about writing a Handler that
overrides generateWSDL():
>This code belongs in a Handler in the requestFlow
This Handler must be invoked in the *responseFlow*, not the requestFlow.
If you're calling MessageContext.setProperty("WSDL", ...) in the
request instead, Axis will clobber whatever you put there.
Having now spent the better part of two days trying to override WSDL
generation via a Handler in Axis, it seems Axis doesn't make this very
easy. There are lots of details about how Axis generates WSDL that a
Handler writer needs to know. I found them only by reading the
BasicProvider sources.
It's also not very efficient. Near as I can tell, right now when
someone hits the ?WSDL URL on my server:
Axis generates WSDL on its own
My code ignores that and loads WSDL off disk
My code converts the WSDL to a DOM object
Axis converts the WSDL back into a String
The WSDL is served.
Nothing is cached.
However, it *does* work :-)