Domanda

I'm running into the following issue with a WAR I am generating using Warbler to deploy to Tomcat. When I run 'rake war' it correctly generates the war file to deploy; however, upon deploying to Tomcat and navigating to the application base, I get the following message:

Errno::ENOENT at /micro_reg_90day/login No such file or directory - jndi:/localhost/micro_reg_90day/WEB-INF/views/login.erb file: RubyFile.java location: initialize line: 464

Within the browser. The strange thing is that when I go to the expanded webapp within the file system--I am seeing this within the webapp/WEB-INF/views directory:

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

As you can see, the login.erb file is being packaged into the war; however, not being found by JRuby when trying to call

render :erb, :login

Within the Sinatra app. The following is my 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

the only thing I am noticing is that the path that Tomcat is telling me is not found is prefixed by a jndi: -- Would this indicate that warbler is suppose to package the .erb files as some sort of named resource within the war?

Thanks for the help!

È stato utile?

Soluzione

So it turns out this was related to the config.ru file that I was using within my sinatra app. The following config.ru file worked:

require 'rubygems'

load File.join(File.dirname(__FILE__), 'app.rb')

set :run, false
set :public_folder, './public'
set :views, './views'

run App

I previously did not have the set :variable declarations.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top