程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从war文件中运行rake任务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从war文件中运行rake任务?

开发过程中遇到从war文件中运行rake任务的问题如何解决?下面主要结合日常开发的经验,给出你关于从war文件中运行rake任务的解决方法建议,希望对你解决从war文件中运行rake任务有所启发或帮助;

终于找到了行之有效的…。

java -jar lib/jruby-complete-1.6.7.jar -S rake db_migrate[1]

在我的个人计算机上运行正常,但在生产中给了我类似下面的信息

rake aborted!
cannot load Java class com.MysqL.jdbc.Driver

Tasks: top => db_migrate
(See full trace by running task with --trace)

这是因为我在rake任务中使用了诸如续集,记录器之类的宝石..我将那些安装在我的机器上但未安装在生产机器上的头戴上..在生产中安装这些宝石是不可行的..所以我将rake任务中所需的gems安装在一个单独的目录中,并将其转换为jar文件(http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems- in -a-jar)…此命令终于有效了…

java -jar lib/jruby-complete-1.6.7.jar -rlib/mygems.jar -S rake db_migrate[1]

需要指出的是:无论您将jar文件放在何处,莺歌总是将其发送到lib目录,尽管您仍然会在原始位置看到一个虚拟的jar文件…我认为解决方案可以使工作更整洁虽然没有尝试过,但是有几种方法。

i>通过在上述博客中提到的jruby-complete-1.6.7.jar本身中包含gem文件…

java -jar lib/jruby-complete-1.6.7.jar -S rake db_migrate[1]

然后应该工作…

ii>通过编写某种清单文件并将其包含在mygems.jar中,以使其独立运行…如果发生这种情况

java -jar myapp.jar -S rake db_migrate[1]

应该管用

解决方法

我的代码库最初是用ruby编写的。它具有rakefile.rb执行数据库迁移的文件。后来,为了便于部署,我将整个内容更改为jruby,效果很好。我面临的唯一问题是如何运行rake任务(执行数据库迁移)。

我试过了

java -jar GV_S.war -S rake db_migrate[1]

以1作为版本,但这无效。

这给了我:

[Winstone 2012/03/23 18:04:56] - Beginning extraction from war file
[Winstone 2012/03/23 18:04:56] - WARNING: The Servlet 2.4/2.5 spec XSD was unavailable inside the winstone classpath. Will be retrieved from the web if required (slow)
[Winstone 2012/03/23 18:04:56] - No webapp classes folder found - /tmp/winstone6913591014121608835webroot/GV_S.war/WEB-INF/classes
[webapp 2012/03/23 18:04:57] - jruby 1.6.7 (ruby-1.9.2-p312) (2012-02-22 3e82bc8) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [linux-amd64-java]
[Winstone 2012/03/23 18:05:03] - Listener winstone.ajp13.Ajp13Listener not found / disabled - ignoring
[Winstone 2012/03/23 18:05:03] - Listener winstone.ssl.HttpsListener not found / disabled - ignoring
[Winstone 2012/03/23 18:05:03] - Winstone Servlet Engine v0.9.10 running: controlPort=disabled
[Winstone 2012/03/23 18:05:03] - HTTP Listener started: port=8080

任何帮助将不胜感激

-谢谢

大佬总结

以上是大佬教程为你收集整理的从war文件中运行rake任务全部内容,希望文章能够帮你解决从war文件中运行rake任务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: