Rails: soap4r - ошибка при запуске wsdl2ruby.rb - PullRequest
0 голосов
/ 06 мая 2010

когда я выполняю Матье $ /Users/Mathieu/.gem/ruby/1.8/bin/wsdl2ruby.rb путь --wsdl https://www.arello.com/webservice/verify.cfc?wsdl - тип клиента --force

Я получаю

на глубине 0 - 20: невозможно получить сертификат локального эмитента F, [2010-05-06T10: 41: 11.040288 # 35933] FATAL - приложение: обнаружено исключение.Остановка ... SSL_connect вернул = 1 errno = 0 состояние = SSLv3 прочитанный сертификат сервера B: проверка сертификата не удалась (OpenSSL :: SSL :: SSLError) /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:247:in connect' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:247:in ssl_connect '/Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:639:in connect' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/timeout.rb:128:in timeout '/Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:631:in connect' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:522:in query' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient/session.rb:147:in query' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:953:in do_get_block '/Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb: 765: в do_request' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:848:in protect_keep_alive_disconnected '/Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:764:in do_request' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:833:in follow_redirect' /Users/Mathieu/.gem/ruby/1.8/gems/httpclient-2.1.5.2/lib/httpclient.rb:519:in get_content' /Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/lib/wsdl/xmlSchema/importer.rb:73:in fetch '/Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/lib/wsdl/xmlSchema/importer.rb:36:in import' /Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/lib/wsdl/importer.rb:18:in import '/Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/lib / wsdl / soap / wsdl2ruby.rb: 206: в import' /Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/lib/wsdl/soap/wsdl2ruby.rb:36:in запустить '/Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/bin/wsdl2ruby.rb:46:in run' /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/logger.rb:659:instart '/Users/Mathieu/.gem/ruby/1.8/gems/soap4r-1.5.8/bin/wsdl2ruby.rb:137 /Users/Mathieu/.gem/ruby/1.8/bin/wsdl2ruby.rb:19:in`load '/Users/Mathieu/.gem/ruby/1.8/bin/wsdl2ruby.rb:19 I, [2010-05-06T10: 41: 11.040855 # 35933] INFO - приложение: конец приложения.(статус: -1)

1 Ответ

2 голосов
/ 11 мая 2010

Быстрый способ сделать это - использовать инструмент, подобный curl, чтобы получить WSDL в файл, а затем просто попросить wsdl2ruby создать клиент SOAP, используя этот файл. Ruby гораздо более требователен к SSL-сертификатам, чем утилиты командной строки, и существуют способы использования HTTPS в коде, но я думаю, что вам нужно будет снять код в утилите. Все, что вам нужно, это определения.

Это также имеет немаловажное преимущество, позволяя вам сохранить WSDL, который вы использовали в своей системе управления исходным кодом, в качестве справочного.

...