Tuesday, May 13, 2008

Web Services Interoperability?

After some discussions I've finally managed to persuade the iSeries administrator to expose some of his applications as services instead of giving other teams accounts to access the databases. We chose a test program, discussed a little, agreed on data and operations, and moved to our favourite IDEs (WDSC in his case, NetBeans in mine).

Time required to build a web service in WDSC starting from an RPGLE program: about 30 minutes, due to the fact that we never tried it before.

Time required to build a client in NetBeans importing the WSDL published on the integrated Websphere: about 5 minutes.

Time required to actually integrate the client and the server: we are still trying to figure that out... the client reports a connection error (but it managed to retrieve the WSDL and generate all the necessary stuff without any problem), the server reports a not better specified moduleData null error (but we managed to locally test the service all right), we report a serious headache.

As always, the devil lies in the details. But where exactly is too often unknown.

Naturally, exporting the WAR file and installing it on a Tomcat instance results in a long and incomprehensible stack trace (did you really think it could be so easy?).

So we tried another approach: we installed an Apache Tomcat instance on the WDSC and selected it as the target runtime for a new application. Magically it all worked fine (after we manually edited the WSDL which reported a wonderful localhost in the wsdlsoap:address attribute), even when we installed the same war file on another server with another Tomcat instance.

The next activity will consist in deploying the application on the Tomcat that resides in the DMZ... All we have to find out is what to open on the firewall. But, for now, let's call it a day.

No comments: