forum.bitel.ru http://forum.bitel.ru/ |
|
Неправильный идентификатор в wsdl [6.0] (CRM) http://forum.bitel.ru/viewtopic.php?f=44&t=9992 |
Страница 1 из 1 |
Автор: | vkulakov [ 05 дек 2014, 13:55 ] |
Заголовок сообщения: | Неправильный идентификатор в wsdl [6.0] |
В процессе написания примера php-клиента столкнулся со следующей проблемой. У меня настроено два модуля Inet, один с идентификатором 24, другой с идентификатором 25. Когда в браузере пишу Код: http://1.2.3.4:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/24/InetServService?wsdl в полученом документе вот такой код: Код: <types> <xsd:schema> <xsd:import namespace="http://service.common.api.inet.modules.bgbilling.bitel.ru/" schemaLocation="http://1.2.3.4:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/25/InetServService?xsd=1"/> </xsd:schema> <xsd:schema> <xsd:import namespace="http://common.bitel.ru" schemaLocation="http://1.2.3.4:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/25/InetServService?xsd=2"/> </xsd:schema> </types> Видно, что идентификатор модуля другой. В результате, когда через php создаю клиент и выполняю запрос, реально запрос попадает в другой модуль. Такая штука может надолго ввести в ступор. Это я что-то неправильно настроил в биллинге или это баг? Другие wsdl и модули не проверял. Если изначально брать wsdl для 25-го модуля, то внутри тоже 25-й модуль и всё работает как положено. |
Автор: | Amir [ 05 дек 2014, 18:18 ] |
Заголовок сообщения: | Re: Неправильный идентификатор в wsdl [6.0] |
Наверное, баг. Web-сервис на самом деле один и тот же, потому везде URL от первого вызова. Но проблема не в этой URL, а в том что в самом низу: Цитата: <port name="InetServService" binding="tns:InetServServiceBinding"> Т.е. WS-клиент после обработки WSDL по умолчанию для работы с веб-сервисом использует адрес (endpointAddress) из WSDL файла. Но это часто не работает, т.к. nginx, проброс порта или WSDL-файл мог быть взят с какой-то другой машины и т.п.<soap:address location="http://127.0.0.1:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/24/InetServService"/> </port> Поэтому у WS-клиента есть возможность указать другой endpointAddress, думаю и в php тоже. Пока предлагаю попробовать так. |
Автор: | vkulakov [ 05 дек 2014, 18:26 ] |
Заголовок сообщения: | Re: Неправильный идентификатор в wsdl [6.0] (CRM) |
Веб-сервис клиенты у меня сгенерированы на java и endpointAddress для них задаётся явно (не дефолтный из wsdl), поэтому в реальности такую проблему не мог обнаружить. А вот когда попытался написать пример на PHP для соседней темы - вот тогда задумался, почему ошибок нигде нет, но и сервис получить не могу. Спасибо за ответ. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |