2010-07-07 9 views
4

Мне нужно написать мыльный клиент, способный отправлять и получать мыльные сообщения.Как создать клиент Ruby SOAP без использования WSDL?

У этой службы мыла нет связанного файла WSDL, и soap4r и savon оба, похоже, требуют одного.

У меня есть пример того, что мне нужно сделать на Java, см. Ссылку ниже.

http://community.cecid.hku.hk/index.php/product/article/writing_hermes_2_ws_client_under_java/#ebms-2_0-sender-ws

Я мог бы использовать Java для этого, на данный момент это, кажется, это было бы легче. Однако я лично предпочитаю кодирование в рубине, и у нашей компании больше рубиновых ресурсов, чем у java.

Может ли кто-нибудь подтвердить, что это возможно сделать что-то похожее на пример java в рубине без написания моей специальной специализированной библиотеки мыла ?. Мне нужно иметь возможность отправлять полезную нагрузку, которая, как мне кажется, обычно представляет собой приложение для мыла.

Мне особенно интересно увидеть примеры soap4r, которые не используют WSDL, поскольку у меня были проблемы с поиском с помощью Google.

Любая помощь очень ценится.

ответ

1

Savon не требует документа WSDL. Пожалуйста, взгляните на the new documentation. Если вы знаете SOAP конечной точки и целевое пространство имен, вы можете выполнить запрос SOAP вроде этого:

client = Savon::Client.new 
    wsdl.endpoint = "http://example.com" 
    wsdl.namespace = "http://soap.example.com" 
end 

client.request :any_soap_action do 
    soap.body = { :do => "something" } 
end 
0
client = Savon::Client.new 
    wsdl.endpoint = "http://example.com" 
    wsdl.namspace = "http://soap.example.com" 
end 

Это не работает, он пропускает имя блока и «е» в пространстве имен:

client = Savon::Client.new do | wsdl | 
    wsdl.endpoint = "http://example.com" 
    wsdl.namespace = "http://soap.example.com" 
end 
+2

исправлено правописание «пространства имен». Благодарю. но вы ошибаетесь в отношении аргумента блока. если вы передадите блок без аргументов, савон будет использовать экземпляр eval (с делегированием). – rubiii

Смежные вопросы