2008-09-24 49 views
11

基本上,我可以部署到我的部署機器的唯一東西是一個JAR文件。我無法安裝JRuby,也無法安裝Glassfish或Tomcat。是否可以將Rails應用程序編譯爲Java VM JAR文件?

是否有可能打包Rails應用程序(包括Rails,vendored當然)JAR文件,這樣我可以做

c:\my_server> java rails_app.jar 

並讓它運行在JVM中的WEBrick或雜種?

+1

您將需要JRuby中做到這一點,據我可以告訴...但你可能只包含JRuby jar(不安裝它)。 – 2008-09-24 18:53:13

+1

你有沒有得到這個工作?我即將開始,但如果其他人已經找到了它...... – 2009-07-31 21:17:36

回答

6

我建議你結帳碼頭。 Embedding Jetty的過程非常簡單,應該可以從當前的jar文件中爲它提供servlet。儘管如此,我還沒有使用Ruby/Rails,所以我不確定是否有任何複雜的問題。

是它通常可以將所有的軌道模板/模型嵌入到一個罐子中爲Tomcat上部署WAR文件裏面?如果是這樣,那麼你應該能夠將嵌入式Jetty從單個罐子中拉出來。

1

我不認爲你可以在JVM中運行的雜種。試圖在沒有Tomcat或Jetty的情況下運行任何類型的Web服務器可能比它的價值更麻煩。 jsight的答案看起來對這個問題很有幫助。如果您可以獲得這些信息,那麼JRuby網站上有關於運行JRuby on Rails in Tomcat的頁面。

9

我寫了一篇文章在一年前關於如何嵌入使用JRuby和一切你想要到一個jar文件的紅寶石源,然後用「Java的罐子myapp.jar」來運行它。

這將需要一些工作,使其啓動軌道我想,但它不應該太難。有了他們wiki上的免費jruby文檔,我想你可以用這種技術很容易地運行一個碼頭+戰爭的事情。

的文章是在這裏: http://blog.kesor.net/2007/08/14/jruby-in-a-jar/

1

你可能想嘗試問這個問題上JRuby的郵件列表/論壇(http://xircles.codehaus.org/lists/[email protected])。

有人會做相同的地方是GlassFish郵件列表

然而,你可能想要做的另一件事是捆綁溫斯頓嵌入式servlet容器和JRuby和Rails和使用jarjar創建一個大罐子。您可能可以構建一個ant構建文件來構建一個BIG jar,其中還包含您的rails應用程序。一個使用這種方法的項目是哈德森(https://hudson.dev.java.net/) - 你可能會得到一些關於如何去做的信息。

BR,
〜一個

3

它可能是一個有點過時,但尼克·西格,JRuby的一個貢獻者wrote about warbler前一陣子。

Warbler是關於包裝一個Rails應用程序到一個.war文件。現在我不是一個大的Java人,所以我不確定你的.jar限制來自哪裏。戰爭文件類似於罐子,但他們是整個網站或其他東西。

最壞的情況,我敢肯定的JRuby wiki有一些關於包裝Rails應用的狀態要在Java的架構上運行。有關於此的信息符合他們的最佳利益。

相關問題