BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 17 июн 2025, 05:34

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 05 дек 2014, 13:55 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
В процессе написания примера 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-й модуль и всё работает как положено.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 дек 2014, 18:18 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Наверное, баг. Web-сервис на самом деле один и тот же, потому везде URL от первого вызова.
Но проблема не в этой URL, а в том что в самом низу:
Цитата:
<port name="InetServService" binding="tns:InetServServiceBinding">
<soap:address location="http://127.0.0.1:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/24/InetServService"/>
</port>
Т.е. WS-клиент после обработки WSDL по умолчанию для работы с веб-сервисом использует адрес (endpointAddress) из WSDL файла. Но это часто не работает, т.к. nginx, проброс порта или WSDL-файл мог быть взят с какой-то другой машины и т.п.
Поэтому у WS-клиента есть возможность указать другой endpointAddress, думаю и в php тоже. Пока предлагаю попробовать так.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 дек 2014, 18:26 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Веб-сервис клиенты у меня сгенерированы на java и endpointAddress для них задаётся явно (не дефолтный из wsdl), поэтому в реальности такую проблему не мог обнаружить. А вот когда попытался написать пример на PHP для соседней темы - вот тогда задумался, почему ошибок нигде нет, но и сервис получить не могу.

Спасибо за ответ.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.047s | 21 Queries | GZIP : On ]