Ошибка веб-службы PHP SOAPClient - PullRequest
       0

Ошибка веб-службы PHP SOAPClient

3 голосов
/ 28 сентября 2010

У меня есть webserice, и я просто делаю простую вещь для вызова веб-сервиса в SOAP Client

т.е.

$ client = new SoapClient ("http://test.unistream.com/wcflib/service.svc?WSDL");

Там написано

SOAP-ERROR: синтаксический анализ WSDL: 'IWebService_GetCountries_InputMessage' уже определено

веб-сервис

http://test.unistream.com/wcflib/service.svc?WSDL

Спасибо.

Ответы [ 3 ]

1 голос
/ 08 августа 2011

Проблема в том, что тип 'IWebService_GetCountries_InputMessage' определяется более одного раза в этом WSDL. Это не ошибка в вашем коде, но в WSDL, который вы пытаетесь использовать. Вам следует поговорить с теми, кто написал WSDL, чтобы узнать, смогут ли они воссоздать его и устранить проблему.

1 голос
/ 08 августа 2011

Это может быть связано или та же проблема с этим: https://bugs.php.net/bug.php?id=43868,

также вы можете найти возможное решение здесь PHP SoapClient: проблемы с распределенным файлом WSDL

(возможно, дубликат ...)

позже отредактируйте, вот другая ссылка: http://www.codingforums.com/showthread.php?t=181338

0 голосов
/ 10 марта 2014

Я столкнулся с той же ошибкой в ​​моей системе: клиент Soap был на PHP (5.3.10), а сторона сервера была написана на .NET:

  • Я загрузил wsdl "Foo.wsdl" из PHP
  • Затем «Foo.wsdl» сделал импорт «Bar.wsdl»
  • затем «Bar.wsdl» снова импортирует «Foo.wsdl»
  • Сбой PHP с "SOAP-ERROR: парсинг WSDL: бла бла уже определено

Чтобы избежать этого, я просто использую стандартную функцию без учета регистра .net и вызываю первый wsdl в нижнем регистре ("foo.wsdl") оригинальный случай (Foo.wsdl). Это сработало, потому что теперь foo.wsdl импортирует Bar.wsdl, а Bar.wsdl импортирует Foo.wsdl, и любопытными вещами, которые я не могу объяснить, PHP это нравится.

...