Создайте исполняемый файл jar, используя sinatra, warbler и jruby-openssl.

Я пытаюсь создать простой исполняемый файл войны, используя Sinatra и Warble. У меня есть простой файл 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)

Я видел, что если я удаляю гем «jruby-openssl» из списка, он не жалуется и создает файл войны, но когда я его запускаю, он вызывает ошибку 500:

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

Есть ли более простой способ создать исполняемый файл jar с помощью Sinatra?


person Labra    schedule 02.12.2011    source источник
comment
Если я выполню команду "rackup -p 4567", все будет работать нормально... поэтому моя проблема заключается в том, как создать военный файл из Sinatra...   -  person Labra    schedule 02.12.2011
comment
Какая версия синатры? Я получаю ту же ошибку (очевидно, из совсем другого кода), и я думаю, что это может быть связано с версиями.   -  person David Rhoden    schedule 08.02.2012
comment
Есть ли прогресс в этом вопросе? Меня интересует эта проблема.   -  person FilBot3    schedule 18.01.2016


Ответы (1)


Взгляните на Rawr, который позволяет использовать jruby-complete для встраивания интерпретатора Ruby в банка.

Последние 3 дня я потратил на получение работающей демонстрации под названием FontX, которая преобразует .ttf в различные другие форматы шрифтов. Запустите rake rawr:jar для компиляции, затем rake start для просмотра.

FontX на Github

person briangonzalez    schedule 16.08.2012