Realise a web service with ruby on rails.

Hi ,
I want realize a web service with rails, but it's the response it's
very slow. I want only saw all element present in my base.
I did a base Customers (with element like id, name, phone,...). I
added two elements.
I did a model customer, a web_service customer.

In the file /app/apis/customer_api.rb
class CustomerApi < ActionWebService::API::Base
  api_method :listid, :expects => [:int], :returns => [Customer]
api_method :listall, :returns => [[:int]]

In the file /app/controller/customer_controller.rb

class CustomerController < ApplicationController
  wsdl_service_name 'Customer'
  web_service_scaffold :invoke

def listid(id)
        Customer.find(id)
end

def listall
        Customer.find(:all).map{ |customer| customer.id }
end
end

I finished my server web_service.
I realised a client
I generated a controller client
/app/controller/client_controller.rb

class ClientController < ApplicationController
web_client_api :customer,
                :soap,
                "http://localhost:3000/customer/api"
  def list
        customer.listall.map do |id|
                @customers = customer.listid(id)
        end
  end
end

But when I do
http://localhost:3000/client/list
my firefox search and send my mongrel server send :
Timeout::Error in ClientController#list2

execution expired

RAILS_ROOT: /var/www/fabdev/config/..
Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill'
/usr/lib/ruby/1.8/timeout.rb:56:in `timeout'
/usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
/usr/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/lib/ruby/1.8/net/http.rb:2020:in `read_status_line'
/usr/lib/ruby/1.8/net/http.rb:2009:in `read_new'
/usr/lib/ruby/1.8/net/http.rb:1050:in `request'
/usr/lib/ruby/1.8/net/http.rb:845:in `post'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:93:in `post'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:116:in `start'
/usr/lib/ruby/1.8/net/http.rb:543:in `start'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:115:in `start'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:92:in `post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:170:in `send_post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:109:in `send'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:170:in `route'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:141:in `call'
/usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call'
(eval):6:in `listid'
/var/www/fabdev/app/controllers/client_controller.rb:11:in `list2'
/usr/bin/mongrel_rails:19:in `load'
/usr/bin/mongrel_rails:19

/usr/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill'
/usr/lib/ruby/1.8/timeout.rb:56:in `timeout'
/usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
/usr/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/lib/ruby/1.8/net/http.rb:2020:in `read_status_line'
/usr/lib/ruby/1.8/net/http.rb:2009:in `read_new'
/usr/lib/ruby/1.8/net/http.rb:1050:in `request'
/usr/lib/ruby/1.8/net/http.rb:845:in `post'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:93:in `post'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:116:in `start'
/usr/lib/ruby/1.8/net/http.rb:543:in `start'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:115:in `start'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:92:in `post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:170:in `send_post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:109:in `send'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:170:in `route'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:141:in `call'
/usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call'
/usr/lib/ruby/gems/1.8/gems/actionwebservice-1.2.6/lib/
action_web_service/client/soap_client.rb:63:in `send'
/usr/lib/ruby/gems/1.8/gems/actionwebservice-1.2.6/lib/
action_web_service/client/soap_client.rb:63:in `perform_invocation'
/usr/lib/ruby/gems/1.8/gems/actionwebservice-1.2.6/lib/
action_web_service/client/base.rb:15:in `method_missing'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:1101:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:1101:in `perform_action_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
filters.rb:696:in `call_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
filters.rb:688:in `perform_action_without_benchmark'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
rescue.rb:83:in `perform_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:435:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:435:in `process_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
filters.rb:684:in `process_without_session_management_support'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
session_management.rb:114:in `process'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:334:in `process'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/dispatcher.rb:41:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/rails.rb:76:in
`process'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in
`synchronize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in
`process'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:155:in
`process_client'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:154:in `each'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:154:in
`process_client'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in
`initialize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `new'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in
`initialize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `new'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:
282:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:
281:in `each'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:
281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/bin/mongrel_rails:128:in
`run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/command.rb:
212:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/bin/mongrel_rails:281

/usr/lib/ruby/1.8/timeout.rb:54:in `rbuf_fill'
/usr/lib/ruby/1.8/timeout.rb:56:in `timeout'
/usr/lib/ruby/1.8/timeout.rb:76:in `timeout'
/usr/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/lib/ruby/1.8/net/http.rb:2020:in `read_status_line'
/usr/lib/ruby/1.8/net/http.rb:2009:in `read_new'
/usr/lib/ruby/1.8/net/http.rb:1050:in `request'
/usr/lib/ruby/1.8/net/http.rb:845:in `post'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:93:in `post'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:116:in `start'
/usr/lib/ruby/1.8/net/http.rb:543:in `start'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:115:in `start'
/usr/lib/ruby/1.8/soap/netHttpClient.rb:92:in `post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:170:in `send_post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:109:in `send'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:170:in `route'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:141:in `call'
/usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call'
(eval):6:in `listid'
/usr/lib/ruby/gems/1.8/gems/actionwebservice-1.2.6/lib/
action_web_service/client/soap_client.rb:63:in `send'
/usr/lib/ruby/gems/1.8/gems/actionwebservice-1.2.6/lib/
action_web_service/client/soap_client.rb:63:in `perform_invocation'
/usr/lib/ruby/gems/1.8/gems/actionwebservice-1.2.6/lib/
action_web_service/client/base.rb:15:in `method_missing'
/var/www/fabdev/app/controllers/client_controller.rb:11:in `list2'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:1101:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:1101:in `perform_action_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
filters.rb:696:in `call_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
filters.rb:688:in `perform_action_without_benchmark'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
rescue.rb:83:in `perform_action'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:435:in `send'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:435:in `process_without_filters'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
filters.rb:684:in `process_without_session_management_support'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
session_management.rb:114:in `process'
/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/
base.rb:334:in `process'
/usr/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/dispatcher.rb:41:in
`dispatch'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/rails.rb:76:in
`process'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in
`synchronize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in
`process'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:155:in
`process_client'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:154:in `each'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:154:in
`process_client'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in
`initialize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `new'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in
`initialize'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `new'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:
282:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:
281:in `each'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:
281:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/bin/mongrel_rails:128:in
`run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/lib/mongrel/command.rb:
212:in `run'
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.1/bin/mongrel_rails:281
/usr/bin/mongrel_rails:19:in `load'
/usr/bin/mongrel_rails:19

Request

Parameters: None

Show session dump

Hi,
No body Had a idea for my problem?

best regards.
Fabien

Hi,
nobody has realized a webservice and it's client with ruby on rails?

thanks?

Fabien.

Hi,
nobody has realized a webservice and it's client with ruby on rails?

thanks?

Fabien.