Существует файл 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"/>
.