?
Solved

Encountering errors while creating VB .Net Class from WSDL File

Posted on 2010-11-10
1
Medium Priority
?
773 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 13

Accepted Solution

by:
AngryBinary earned 2000 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

How To Install Bash on Windows 10

Windows’ budding partnership with Canonical has certainly led to some great improvements. One of them being the ability to use Bash on your Windows machine without third party applications! This might be one of the greatest things a cloud engineer in a Windows environment can do!

Question has a verified solution.

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

Introduction Knockoutjs (Knockout) is a JavaScript framework (Model View ViewModel or MVVM framework).   The main ideology behind Knockout is to control from JavaScript how a page looks whilst creating an engaging user experience in the least …
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Suggested Courses

770 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