2011-12-09 3 views
2

Warbler를 사용하여 Tomcat에 배포 할 WAR로 다음과 같은 문제가 발생합니다. 'rake war'를 실행할 때 배포 할 war 파일을 올바르게 생성합니다. 그러나, 톰캣에 배포하고 응용 프로그램의 기본 탐색에, 나는 다음과 같은 메시지가 얻을 : micro_reg_90day /에서Jruby Warbler가 Sinatra 용 Tomcat에서 전쟁을 생성했습니다. - 파일을 찾을 수 없습니다.

errno를 :: ENOENT을/그런 파일이나 디렉토리를 로그인하지 - JNDI :/로컬 호스트/micro_reg_90day/WEB- INF/뷰/login.erb 파일 : RubyFile.java 위치 : 브라우저 내에서 464

: 라인을 초기화합니다.

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 파일을 볼 수 있듯이 : 나는 웹 애플리케이션/WEB-INF/뷰 디렉토리에이 메시지가 표시되는 - 이상한 것은 내가 파일 시스템 내에서 확장 된 웹 애플리케이션에 갈 때이다 전쟁에 포장되고있다. 그러나 JRuby가 전화를 걸 때 찾을 수 없습니다.

render :erb, :login 

Sinatra 앱 내에서. 다음은 내 설정/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 

내가 몰래하고있는 유일한 방법은 JNDI에 의해 접두사를 찾을 수 없습니다 Tomcat이 나를 말하고 경로가 있다는 것입니다 : -이 그 지저귀는 생각한다 나타냅니다 .erb 파일을 전쟁 내에서 명명 된 자원으로 패키징 하시겠습니까?

도움 주셔서 감사합니다.

답변

1

그래서 이것은 내 sinatra 앱에서 사용하고있는 config.ru 파일과 관련이있는 것으로 나타났습니다. 다음 config.ru 파일이 작동했습니다 :

require 'rubygems' 

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

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

run App 

이전에는 set : variable 선언을 가지고 있지 않았습니다.