Я следующий код JRuby, который использует Java класс javax.naming.InitialContext
:`неинициализированного constant` ошибка
if RUBY_PLATFORM == "java"
require 'java'
import javax.naming.InitialContext
module JndiProperties
def self.getProperty(name)
begin
env.lookup(name).to_s
rescue
nil
end
end
def self.[](name)
getProperty(name)
end
private
def self.env
context = InitialContext.new
environment = context.lookup 'java:comp/env'
environment
end
end
else
module JndiProperties
def self.getProperty(name)
nil
end
def self.[](name)
getProperty(name)
end
end
end
Я использую этот модуль в database.yml для настройки подключения к базе данных. Например .:
username: <%= JndiProperties['ANTARCTICLE_DB_USER'] || 'root' %>
Когда я пытаюсь запустить приложение рельсы, я получаю uninitialized constant JndiProperties::InitialContext
. Если я попытаюсь использовать этот модуль из irb, он будет работать, как ожидалось.
такая же ошибка .. может быть, мне нужно уточнить, что я использую warbler, чтобы упаковать приложение в военный файл, а затем развернуть его – wedens
@wedens, чем это должно быть что-то другое interf Это просто работает как ожидалось. https://gist.github.com/kares/d78d138165da7ad225b6 – kares
Да, он работает в irb и как скрипт. но я не могу заставить его работать внутри файла войны (такая же ошибка) – wedens