Troubleshooting WSDL -- Best Practices, Common Mistakes
At Tek-Tips.com, a pair of web services developers have asked for help solving a pesky WSDL reader problem that's keeping the WSDL file from reading a SOAP message (and/or the APIs). The problem is annoying, and the solution offered seems simple -- and it works.
Here are the WSDL problem postings. You can see the thread for yourself, or add your own solution at http://www.tek-tips.com/gpviewthread.cfm/qid/287996/pid/781/lev2/5/lev3/60.
User 1 - Question
I am playing with the High Level API for SOAP Messages and have made the dll's and registered them, created the virtual directory and plonked the WSDL, WSML files etc. in. (Not quite clear on "In the WSML file, change the ProgID to the ProgID of the ActiveX DLL that you previously created.")
So I have the clientdocsample1.vbs file, and when I run it, I get:
Initialization Failed WSDLReader:Loading of the WSDL file failed
WSDL reader:XML parser failed at linenumber 0, linepsotion 0,
reason is: The system cannot locate the resource specified.
I also tried the SOAP wizard on the docsample1.dll to make a WSDL file (ASP listener) but that gives the same.
Have tried mapping the Soapisap.dll but this has not cured it.
User 2 - Question
I have the same problem. But I am using VB application as client on a machine and have WSDL,WSML and ASP page on the IIS server on different machine. It works without any problem when I have a complete SOAP tool kit installed on client but does not work when I just install the SOAP redistributable file on client. It gives the error:
WSDLReader: Loading of WSDL file failed 0x80040154
In my experiences with SOAP, this is because the SOAP API cannot "see" the WSDL file referenced. Are you sure the URL is correct?
In the shop where I work, we have a proxy logon to get "outside" the firewall. So what I do is fire up Internet Explorer, browse to a URL outside our firewall, and this pops up my logon box. Once I log in correctly, I have a "pipe" that can access outside the firewall (which is where my production web services are). That does the trick...
More Resources and Tips on WSDL
- Preston Gralla, author of more than 20 high-tech books, including "How the Internet Works," offers readers "An Inside Look at WSDL" in a column posted at TechTarget. This primer dissects WSDL in a logical, step-by-step way (with graphics) so that even non-web services developers can grasp how the technology works.
- The August issue of Linux Magazine provides a comprehensive WSDL overview , including some code samples using a Perl client using the Google WSDL file (from the Google Web Services API). Just how WSDLs fit in with SOAP and UDDI is also mapped out, to help both developers and sysadmins get a better view of the way these components work together to deliver a "web service" across multiple nodes.
- Last week, Microsoft Systems Journal posted an article on using Direct Internet Message Encapsulation (DIME) for sending and receiving SOAP messages using standard transport protocols such as HTTP. The article, Sending Files, Attachments, and SOAP Messages Via Direct Internet Message Encapsulation, written by Microsoft Press author Jeannine Hall Gailey, also provides a detailed description of the message format and how it is parsed, as well as ways to work with SOAP and extend it with WSDL.
- O'Reilly authors Martin Gudgin, Timothy Ewald explore the world of SOAP Encodings, WSDL, and XML Schema Types in this no-nonsense approach to helping developers map their WSDL work with SOAP and XML. The authors even address a concern or two stemming from mapping Java classes to WSDL.
- The Advisor series of newsletters offers a review of IBM's alphaWorks' WSDL Explorer, a tool that lets developers compare and contrast Web services without importing them into the development environment. WSDL Explorer is a Web application that lets you display WSDL files, generate views of operations, invoke operations and view a sample message flow.