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

使用sinatra、warbler和jruby openssl创建一个可执行jar,openssl,sinatra,jruby,war,warbler,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 require 'rubygems' require 'lib/app' run Hiwar.new Warbler::Config.ne

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

require 'rubygems'
require 'sinatra'

class Hiwar < Sinatra::Application 
  get '/' do
    body "Hi!"
  end
end
require 'rubygems'
require 'lib/app'

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

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

end
和一个config/warble.rb文件,其中包含:

require 'rubygems'
require 'sinatra'

class Hiwar < Sinatra::Application 
  get '/' do
    body "Hi!"
  end
end
require 'rubygems'
require 'lib/app'

run Hiwar.new
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?

看看,它允许您使用
jruby complete
在jar中嵌入Ruby解释器

在过去的3天里,我得到了一个名为的工作演示,它将
.ttf
转换为各种其他字体格式。运行'rake rawr:jar'进行编译,然后
rake start
进行查看


如果我执行“rackup-P4567”,它工作得很好…所以我的问题是如何从sinatra开发war文件…sinatra的哪个版本?我得到了相同的错误(显然是来自非常不同的代码),我认为这可能与版本有关。在这个问题上有什么进展吗?我对这个问题感兴趣。