First - thank you for SOAP::WSDL - great module - really appreciate it.
We (donor.com) are almost done writing a new CPAN module called POE::Component::Server::SOAP::WSDL - the existing POE::Component::Server::SOAP module is based on SOAP::Lite and we needed to use SOAP::WDL but still wanted to use POE. As part of this, we are also doing a little tool that converts some YAML meta data about a module into a WS-I WSDL. We can then use wsdl2perl to generate the server classes, and give the same wsdl file to the clients. Since we have 500+ APIs we really didn't want to manually wrap them all for SOAP::WSDL, so we adapted SOAP::WSDL::Server.pm to POE::Component::Server::SOAP::WSDL::Server to handle the dispatching and wrapping. The goal of this approach is to allow any API that returns a hash ref to be served up using the following process:
1) Write a simple metadata file about the module to be exposed. For example: