Warblerを使用してTomcatにデプロイするために生成しているWARで次の問題が発生しています。'rake war'を実行すると、デプロイするwarファイルが正しく生成されます。ただし、Tomcatにデプロイしてアプリケーションベースに移動すると、次のメッセージが表示されます。
Errno :: ENOENT at / micro_reg_90day / loginそのようなファイルまたはディレクトリはありません-jndi:/localhost/micro_reg_90day/WEB-INF/views/login.erbファイル:RubyFile.java場所:初期化行:464
ブラウザ内。奇妙なことに、ファイルシステム内の展開されたwebappに移動すると、webapp / WEB-INF/viewsディレクトリ内にこれが表示されます。
MacBook-Pro:views ejlevin1$ ls -l
-rw-r--r-- 1 ejlevin1 wheel 740 Dec 9 16:20 login.erb
-rw-r--r-- 1 ejlevin1 wheel 1309 Dec 9 16:20 next_steps.erb
-rw-r--r-- 1 ejlevin1 wheel 8957 Dec 9 16:20 ninety_day.erb
-rw-r--r-- 1 ejlevin1 wheel 10237 Dec 9 16:20 try_it_tuesdays.erb
ご覧のとおり、login.erbファイルはwarにパッケージ化されています。ただし、JRubyが電話をかけようとしても見つからない
render :erb, :login
Sinatraアプリ内。以下は私のconfig/warbler.rbです。
Warbler::Config.new do |config|
config.dirs += ['views']
config.includes = FileList["app.rb","init.rb"]
config.gem_dependencies = true
config.webxml.rack.env = ENV['RACK_ENV'].nil? || ENV['RACK_ENV'] =='' ? 'development' : ENV['RACK_ENV']
config.webxml.jruby.compat.version = "1.9"
end
私が気付いている唯一のことは、Tomcatが私に言っているパスが見つからないということは、接頭辞jndiが付いていることです:-これは、warblerが.erbファイルを戦争内のある種の名前付きリソースとしてパッケージ化することを想定していることを示しますか?
助けてくれてありがとう!