使用Trinidad(JRuby和RoR 3)时从lib目录重新加载jar

时间:2013-12-13 18:52:24

标签: java ruby-on-rails-3 jruby trinidad-gem

使用Trinidad时,有没有人实现过Java库的热部署(甚至编译过的Java类)?

My Rails应用程序在Trinidad上运行,并依赖于my-rails/lib/java下打包多个jar的Java后端。当其中一个罐子发生变化时,Trinidad服务器不会重新加载它。 touch tmp/restart.txt仅重新加载应用上下文。

请注意我的问题与config.autoload_paths无关,因为据我所知,此选项仅用于重新加载Ruby文件。

<小时/> 已更新
我无法实现我的java依赖项的热部署并放弃了。对我来说唯一的帮助是单元测试,我每次都会在本地启动以检查我的代码。

1 个答案:

答案 0 :(得分:1)

我认为如果.jar没有重新加载而不是它可能是一个Trinidad错误(因为在上下文重启期间应该重新添加jars - 假设Tomcat默认执行此操作 - 我不确定)...会很棒了解细节(特立尼达的追踪器),例如如果jar的名称相同,那么配置如何(如果有的话)。

另一种选择是尝试滚动重启,因为创建了一个全新的上下文 - 因此它应该从文件系统中获取上下文所依赖的任何内容。

请注意,自动重新加载文件更改(例如更改.jar文件,即使可能与Tomcat一起使用)也是在Trinidad中禁用的 - 您需要“明确”(触摸...)以请求重新启动。 / p>