![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Su_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Всем доброго дня!
До сего работал с REST и проблем не знал, но понадобилось разбирать с протоколом SOAP. Причем soap используют только как транспорт для данных. Есть wsdl файл описывающий типы, сообщение и т.д. Где можно найти примере простого Soap приемника строящегося на базе wsdl? Есть пример простого сервера:
Что он должен делать? |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
$server->handle() Сеттер параметр это переопределение обработчик если не задан то транспортный уровень работает по умолчанию SoapServer::__doRequest, его также можно переопределить через наследование класса -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| Su_ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Спасибо, т.е. как я понял по сути в классе ValueService нужно описать методы которые могут придти от soap клиента?
К примеру в wsdl есть тег binding и в нем:
Получается если мы в классе ValueService создам метод publishIncident
То при обращение к такому серверу soap клиента , будет исполнит метод класса ValueService? И еще вопрос если позволите, как получить тело soap запроса, т.е. по сути xml. Т.е. handle ждет на 80 или 8080 порту клиента, к нему приходит пакет, в теле которого xml (soap) как это xml захватить и например записать в файл? |
||||
|
|||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
В общем и целом - да. Есть нюансы лишь в корректности описаний сервиса
Зачем? http://ua2.php.net/manual/ru/class.soapclient.php -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| Su_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 386 Регистрация: 1.8.2007 Репутация: нет Всего: нет |
Я так понимаю soap можно использовать как RPC так и просто по передаче данных. В частности клиент может сам посылать данные на сервер? Т.е. клиент вызывает url и передает в пакете данные в формате soap. Как эти данные на сервере сохранить в файл например? |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Можно, но неэффективно. Слишком большой оверхед для всего лишь передачи данных. Но тебе же не нужен весь soap-пакет Тебе нужны лишь данные, которые пришли в нем Пишешь метод/функцию, которая будет сохранять полученные данные в файл. И клиентом шлешь данные именно этому методу. Если ты не планируешь работать кроссплатформенно, то посмотри реализацию Zend_Soap_Server/Zend_Soap_Client Они избавят тебя от необходимости написания правильного wsdl Если в планах взаимодействие с .net/java тогда можешь погружаться в спецификации Добавлено через 53 секунды P.S. по указанной ссылке на php.net есть информация как получить доступ к raw данным soap-пакета -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |