Thin&Sinatra没有端口

问题描述:

我遇到问题,使用Thin和Sinatra设置我的应用程序。我创建了一个包含以下设置的development-config.ru文件:Thin&Sinatra没有端口

# This is a rack configuration file to fire up the Sinatra application. 
# This allows better control and configuration as we are using the modular 
# approach here for controlling our application. 
# 
# Extend the Ruby load path with the root of the API and the lib folder 
# so that we can automatically include all our own custom classes. This makes 
# the requiring of files a bit cleaner and easier to maintain. 
# This is basically what rails does as well. 
# We also store the root of the API in the ENV settings to ensure we have 
# always access to the root of the API when building paths. 
ENV['API_ROOT'] = File.dirname(__FILE__) 
$:.unshift ENV['API_ROOT'] 
$:.unshift File.expand_path(File.join(ENV['API_ROOT'], 'lib')) 
$:.unshift File.expand_path(File.join(ENV['API_ROOT'], 'db')) 

# Now we can require all the gems used for the entire API by simpling requiring 
# them here. We can also include the classes that we have defined inside the lib 
# folder. 
require 'rubygems' 
require 'bundler' 

# Run Bundler to setup our gems properly. This will install all the missing gems on 
# the system and ensure that the deployment environment is ready to run. 
Bundler.require 

# To make the loading easier for the application, we will now automatically load all 
# models that have been defined inside the lib folder. This ensures that we do not need 
# to load them anymore anywhere else in our application, as the models will be known to 
# ruby everywhere. 
Dir.glob(File.join(ENV['API_ROOT'], 'lib', '**', '*.rb')).each{|file| require file} 

# Now we will configure the Sinatra application so that we can fire up the entire API. 
# This requires some detailed settings like whether logging is allowed, the port to be 
# used and some folder locations. 
require 'sinatra' 
require 'app' 
set :logging, true 
set :dump_errors, true 
set :port, 3001 
set :views, "#{ENV['API_ROOT']}/views" 
set :public_folder, "#{ENV['API_ROOT']}/public" 
set :environment, :test 

# Start up the Sinatra application with all the settings that we have defined. 
run App.new 

这是基于我在Sinatra网站上找到的信息。但是,问题是我无法使应用程序在端口3001上运行。 如果我使用瘦启动-R development-config.ru它在端口3000上运行。如果我使用rackup config-development.ru它运行在端口9696。不过,我从来没有看到西纳特拉踢或通过端口运行3000

我的应用程序是这样的:

# Author : Arne De Herdt 
# Email : 
# This is the actuall application that will be running under Sinatra 
# to serve the requests for the billing middleware API. 
# We use the modular approach here to allow control when deploying 
# the application using Capistrano. 
require 'sinatra/base' 
require 'logger' 
require 'savon' 
require 'billcrux' 

class App < Sinatra::Base 
    # This action responds to POST requests on the URI '/billcrux/register' 
    # and is responsible for handeling registration requests with the 
    # BillCrux payment system. 
    # The 
    post "/billcrux/register" do 
    # do stuff 
    end 
end 

谁能告诉我什么,我做错了什么?

找到解决方案。

Rack::Handler::Thin.run App.new, :Port => 3001 

,而不是

run App.new 
+1

好,这不是解决办法,因为我的黄瓜测试不通过这种方式工作.... – 2012-03-28 12:57:54