Существует файл PHP действующий как wsdl , и есть файл wsdl в котором есть следующие строки:
<service name="ClientService"> <documentation></documentation> <!-- partie 8 : Port --> <port name="ClientPort" binding="typens:ClientBinding"> <soap:address location="http://192.168.1.12/imfmobile/webservice/InterfaceTransfererClient.php"/> </port> </service>
Проблема в том, что IP-адрес компьютера, на котором находится wsdl и wsdl находится 192.168.1.123, и я получаю данные при вызове функции из wsdl PHP ! Так что <soap:address не нужен?
Краткий ответ: адрес – это всего лишь указание (для разработчиков или инструментов, которые генерируют код и конфигурацию), где доступ к сервису может быть доступен, и какой URL-адрес ожидать.
Длинный ответ: если вы посмотрите на схему WSDL , вы увидите, что элемент port определен как содержащий только name и атрибут binding , поэтому этого будет достаточно. Ваш служебный элемент migh выглядит так и будет технически корректным:
<service name="ClientService"> <port name="ClientPort" binding="typens:ClientBinding" /> </service>
Но port также определяется как расширяемый элемент, который позволяет добавлять к нему элементы из других пространств имен (например, <soap:address> ).
Обычно (да!) <soap:address> должен указывать, где находится реальная услуга, но, к сожалению, это не всегда происходит из-за разных факторов, таких как:
WSDL в основном используются для генерации клиентского кода. Как только это будет сделано, вам больше не понадобится WSDL, вам просто нужен URL-адрес, где можно подключиться к развернутому веб-сервису. Адрес есть как подсказка для инструментов, чтобы добавить некоторую конфигурацию по умолчанию, которую вы позже замените REAL-адресом для вызовов.
В идеале, то, что в WSDL должно быть равно реальному адресу, но это какая-то информация, которая обычно приходится на задачи обслуживания, и все заканчивается тем, что устарело. Вы должны указать его как подсказку, даже если это просто <soap:address location="http://localhost/imfmobile/webservice/InterfaceTransfererClient.php"/> .