Rails 3 и Action Webservice порты - PullRequest
       0

Rails 3 и Action Webservice порты

2 голосов
/ 24 октября 2011

Мне нужно, чтобы в моем приложении rails был веб-сервис SOAP. (это для интеграции с Quickbooks, и веб-коннектор QB ожидает, что у вас будут веб-службы на вашем конце: (

Я попробовал гем actionwebservice от dnordberg (гем 'actionwebservice',: git => "git: //github.com/dnordberg/actionwebservice.git"), который является портом Rails 3 исходного гема data-noise / actionwebserice.

Поскольку я относительный новичок в RoR (но не в программировании), я не очень уверен, какие еще есть пропущенные шаги. Я добавил вышеупомянутый гем actionwebservice и SOAP4R (github.com/felipec/soap4r.git)

Gemfile

gem 'soap4r', :git => 'git://github.com/felipec/soap4r.git'
gem 'actionwebservice', :git => 'https://github.com/dnordberg/actionwebservice.git'

и следовал инструкции здесь: http://www.ibm.com/developerworks/opensource/library/os-ws-rubyrails/index.html.

Но я просто не могу заставить веб-службу работать. Я продолжаю получать ошибку маршрута. (очевидно, rails еще не распознал его как WS, и, следовательно, ищет подходящие маршруты контроллера?).

No route matches [GET] "/hello_message/wsdl"

для http://localhost:3000/hello_message/wsdl

Может ли кто-нибудь обеспечить быстрый переход по шагам, необходимым для рельсов 3.x? Спасибо!

пс: rails g web_service тоже не работает

Ответы [ 3 ]

2 голосов
/ 11 декабря 2011

Я работал над развилкой ActionWebService и исправил эту проблему для Rails 3.1.x, а также некоторые проблемы со скаффолдингом.Вы можете найти мой форк в http://github.com/livestation/actionwebservice

Следите за ним, так как я буду добавлять другие исправления в течение следующей недели или около того (например, «Невозможно сопоставить SOAP :: Mapping :: SOAPException с SOAP /»).OM. "Ошибка, которую вы получаете, когда используете скаффолд, когда генерируется исключение в коде.)

Одно из текущих предупреждений состоит в том, что вам нужно добавить функцию log_error (message) в ваш контроллер, который вы назначили какконтроллер веб-службы, потому что я еще не добавил это в гем.

Не забудьте добавить вызов acts_as_web_service в ваш контроллер, чтобы соединить все это вместе, потому что это не былоупоминается в оригинальной документации.

[править] забыл упомянуть, что я использую эту версию SOAP4r https://github.com/spox/soap4r-spox

С нетерпением ждем ваших комментариев

0 голосов
/ 14 декабря 2011

Мне нужно было добавить следующее в мои маршруты.rb:

  get "hello_message/wsdl"
  post "hello_message/api"
0 голосов
/ 24 октября 2011

Вы пытались добавить новый маршрут к route.rb?

match "/hello_message/wsdl" => "hello_message#wsdl"

Rails3 более строго определяет все маршруты

http://guides.rubyonrails.org/routing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...