EGL Development User Group - Group home

Exploring Web services - Using WSDL files with local imports

  
With the 8.0.1.2 release of Rational Business Developer, you can use Web Services Description Language (WSDL) files that have local XML Schema Definition (XSD) or WSDL imports and includes. This support encompasses creating EGL interfaces, service skeletons, and records, generation and runtime.

Before 8.0.1.2, we required the WSDL file to be under the EGLSource folder. With 8.0.1.2, this restriction has been removed. If you are using a WSDL with a local import do not put the files under the EGLSource folder. Files in EGLSource folder are compiled; for non-EGL files the compile step copies them to the EGLBin folder, but the process changes the file name to lower case. This can a problem for imports using mixed case file names. My suggestion is to create a folder in the project where you want to create the interface, under that folder copy the WSDL file and all the imports maintaining the folder structure.
Here's an example:
project tree with wsdl
In the example, you will notice I put my WSDL files under WSDLSource/wsdl.
  • HelloService.wsdl imports abstract/AbstractHelloService.wsdl
  • AbstractHelloService.wsdl imports ../xsd/hello.xsd

After putting the WSDL files and imported files in the EGL project, consuming them is as easy as the previous release.
  1. Select the .wsdl file.
  2. Right click and select EGL Services > Create EGL Client Interface...
  3. Complete the wizard.
  4. You will now have the interface and records needed to invoke the service.

A couple of thoughts on performance:
  • Our Tomcat and Java SOAP service invocation implementation use dynamic invocation. The runtime process requires the WSDL files and all of its imports. On the first service invocation, the runtime opens and parses the WSDL file into a runtime model, this model is cached for subsequent invocations.
  • If you are migrating from an application that was using a single WSDL file to a WSDL that has many local imports, you may notice a slight performance change on the first use because all files need to be opened.

I hope this long awaited enhancement simplifies your SOAP service development with EGL. 
Regards,
Joe