Solved

Encountering errors while creating VB .Net Class from WSDL File

Posted on 2010-11-10
1
762 Views
Last Modified: 2013-11-26
Web Service Call from Studio 2008 Project Issue

I am developing a Visual Studio 2008 (VB) based app which needs to access some customer data by calling Web Service. This Web Server is behind Firewall, therefore my development workstation based development environment can not directly access the definition file (WSDL File). Therefore I cannot select "Add Web Reference" option, specify the URL and be able to call related methods.

Therefore, I tried to generate Proxy Class based code by using WSDL.exe utility. Using Visual Studio 2008 Command Prompt, I typed “WSDL.exe /l:VB RepositoryService.WSDL” command. I am getting the following error message:

Error: Cannot find definition for http://service.repository.ivr.abc.com:RepositoryService.  Service Description with namespace http://service.repository.ivr.abc.com is missing.

It appears that this WSDL file is making reference to the below listed “http://service.repository.ivr.abc.com:RepositoryService” URL and it is not accessible from my development workstation, therefore the above error is being generated.

Is this the case? If yes then how do I get around these issues?

Any suggestions would be greatly appreciated.

RepositoryService.WSDL File’s contents are pasted below:

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://service.repository.ivr.abc.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.account.ivr.abc.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="RepositoryServiceBusImplService" targetNamespace="http://service.account.ivr.abc.com">
  <import location="http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService?wsdl=wsdl1" namespace="http://service.repository.ivr.abc.com">
    </import>
  <binding name="RepositoryServiceBusImplPortBinding" type="ns1:RepositoryService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getCallDetails">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="RepositoryServiceException">
        <soap:fault name="RepositoryServiceException" use="literal"/>
      </fault>
    </operation>
    <operation name="saveCallDetails">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="RepositoryServiceException">
        <soap:fault name="RepositoryServiceException" use="literal"/>
      </fault>
    </operation>
  </binding>
  <service name="RepositoryServiceBusImplService">
    <port binding="tns:RepositoryServiceBusImplPortBinding" name="RepositoryServiceBusImplPort">
      <soap:address location="http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService"/>
    </port>
  </service>
</definitions>

0
Comment
1 Comment
 
LVL 13

Accepted Solution

by:
AngryBinary earned 500 total points
ID: 34117295
I believe this is your problem:

<import location="http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService?wsdl=wsdl1" namespace="http://service.repository.ivr.abc.com"></import>

This is saying you need to import another WSDL from the url "http://etsmysqlws.lb.abc.com:8080/IVRRepository/RepositoryService?wsdl=wsdl1" to get the definition of a Web Service entity (in this case, "RepositoryService"), and as you said you don't have access to this server behind your firewall.

If you can manually copy this file to your machine, you can change the location URL in the import tag to the file's location on your file system.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I will show you how to create a ASP.NET Captcha control without using any HTTP HANDELRS or what so ever. you can easily plug it into your web pages. For Example a = 2 + 3 (where 2 and 3 are 2 random numbers) Session("Answer") = 5 then we…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
The viewer will learn how to count occurrences of each item in an array.

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question