Below is a sketch of my current design to explain the situation better:
+----------+ +----------+ | | UNIX | HTTP | Java | HTTP | Web
| ADABAS | <-------> | Web | <-------> | Service
| NATURAL | | App | |
+----------+ +----------+ |
Because of the inabilities of NATURAL version I wrote a C module that opens an HTTP connection to Java Web App and sends web service parameters as normal request parameters, and fetches the returned data to NATURAL.
Web application receives the parameters, in a large if-else block decides which method to call and using Axis generated proxy classes invokes the method. By using the returned object it prepares a very long formatted string and sends back. (Btw, Java Web Application is another host for security and performance related reasons.)
I think you'll want to get rid of the manual WSDL parsing, and also get rid of your big if/else block in the webapp. On the client (NATURAL) side, could you use Axis C++, or perhaps a SOAP library for C, Perl, Python, etc to just invoke the service methods directly? I may be missing something, but it seems that this would save you a lot of work.
