Before 220.127.116.11, we required the WSDL file to be under the EGLSource folder. With 18.104.22.168, 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:
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.
- Select the .wsdl file.
- Right click and select EGL Services > Create EGL Client Interface...
- Complete the wizard.
- 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.