2009-09-25 2 views
3

Я пытаюсь добавить веб-ссылку на внешнюю созданную Axis веб-службу в решение Visual Studio 2008. URL-адрес, который я получил, указывает на WSDL, с которым я могу успешно получить доступ через браузер, и я вижу все данные службы WService. Используемая версия Axis была 1.4.Использование созданной Axis веб-службы из решения VS2008 в C#

Но если я бегу wsdl.exe или когда я добавить ссылку в VS2008 я могу увидеть список методов слева, но я получаю сообщение об ошибке о том, что:


документ на URL http://............?wsdl не был признан известным типом документа.

Сообщение об ошибке от каждого известного типа может помочь вам решить эту проблему: «Открытие документа в URL http://.........?wsdl не может быть найден»

  • отчет от «DISCO документа» есть.
    • Формат документа не распознается.
  • Отчет из документа WSDL: «В документе XML (510, 62) есть ошибка».
    • Префикс пространства имен "impl: urn" не определен.
  • Отчет «XML-схемы» является «Корневой элемент XML-схемы W3C должен быть и его пространство имен должно быть» http://www.w3.org/2001/XMLSchema «».»

И я не могу продолжить. Я видел другие посты здесь на SO, но все они имеют в виду ситуацию, в которой веб-ссылки уже добавлен.

Большое спасибо заранее!

А.

EDIT: Спасибо, ребята, на самом деле мне удалось решить проблему «вручную», как это было предложено довхолуком: я запустил wsdl, сохранил его локально в файловой системе, а затем модифицировал его вручную, пока wsdl.exe смог генерировать классы. Затем я добавил класс в проект и смог вызвать веб-службу.

Ciao Andrea

ответ

3

Это общая проблема, которую я испытываю при использовании оси 1.4. Я лично всегда кодирую свои wsdl и xsd вручную вместо использования возможности испускания для этого - и по другим причинам ...

Если вы откроете свой wsdl и начнете синтаксический анализ, я бы поспорил, что у вас есть перечисление, в котором пусто". Что-то вроде:

<xs:simpleType name="MyType"> 
</xs:simpleType> 

я действительно только гадать здесь, потому что вы не вывесить WSDL (не уверен, если вы можете?), Но я получаю это точное поведение, когда я пишу/XSD WSDL и имеют ограничения на простые типы ...таких как:

<xs:simpleType name="IpAddress"> 
    <xs:restriction base="xs:string"> 
    <xs:pattern value="\d*"> (note this is not 'correct' i'm just 'for instancing') 
    </xs:restriction> 
</xs:simpleType> 

(не убьет меня, если это инвалид XSD - я буду просто из памяти ... :))

Ось будет сосать это, создавать объекты, но когда он получает испуская с помощью? wsdl, он выходит «недействителен» ....

Итак, мой совет - расчесать этот wsdl - особенно раздел типов для «неполных» определений схемы ... Выньте их из своей java и попробуйте снова ', пока он не будет работать в C# ....

Не знаю, помогает ли это или нет, но если вам нужно другие идеи, после ...

Смежные вопросы