使用sinatra,warbler和jruby-openssl创建一个可执行jar

时间:2011-12-02 08:05:02

标签: openssl sinatra jruby war warbler

我正在尝试使用sinatra和warble创建一个简单的可执行war文件。我有一个简单的lib / app.rb文件:

require 'rubygems'
require 'sinatra'

class Hiwar < Sinatra::Application 
  get '/' do
    body "Hi!"
  end
end

config.ru文件:

require 'rubygems'
require 'lib/app'

run Hiwar.new

和config / warble.rb文件:

Warbler::Config.new do |config|
  config.dirs = %w(config lib)

  config.gems += ["sinatra","rack","rack-protection","tilt","jruby-openssl"]

end

执行时:

$ warble executable war

我获得:

warble aborted!
Zip end of central directory signature not found

Tasks: TOP => war:files
(See full trace by running task with --trace)

我已经看到如果从列表中删除gem“jruby-openssl”,它不会抱怨并创建war文件,但是当我执行它时,它会引发500错误:

undefined method `ssl?' for class `Sinatra::Request'

有没有更简单的方法来生成sinatra的可执行jar?

1 个答案:

答案 0 :(得分:0)

查看 Rawr ,它允许您使用jruby-complete将Ruby解释器嵌入jar中。

我花了最近3天的时间来获得一个名为FontX的工作演示,它将.ttf转换为各种其他字体格式。运行'rake rawr:jar'进行编译,然后运行rake start进行查看。

<强> FontX on Github