2014-01-29 47 views
-2

我只是在備用的StackOverflow論壇社區上重新發布我的上一個問題。但是這個帖子目前被擱置,因爲我的帖子問題更多的是技術導向,而不僅僅是一個通用的問題。Grails不能在Tomcat環境下編譯

這裏有雲


我目前正在對客戶的債務管理軟件,和我的重點任務之一,就是改善和提高應用程序的功能和特性。這個應用程序完全是用Grails編寫的。

最近,我收到一封來自客戶的電子郵件,其中說明了軟件背後的歷史背景,其中一個潛在問題是Grails應用程序「不可編譯」。這意味着它只能在Groovy環境中編譯。但它不會在Tomcat環境中編譯。儘管Grails框架已經內置了Tomcat服務器運行時環境包,但其版本與實際的Tomcat服務器部署包之間存在顯着差異。客戶還指出,它無法編譯的原因是因爲該應用程序由於其類和功能的複雜數量而具有太多不兼容性問題。

請問客戶聲稱此聲明的真實性和有效性如何?是? Grails應用程序在發佈後的Tomcat服務器生產環境中不適合常見嗎?我只想知道你對此的想法可能並熱衷於聽取你的建議,我可以做些什麼來進一步分析和研究這個問題,然後才能自信地回到我的客戶那裏討論這些所謂「未編譯」的可能替代方案'國家問題。

這裏是連接錯誤日誌(FYI)

enter image description here

+0

我們將發佈一百萬美元的應用程序(又一個),這些應用程序是用Grails編寫的,到本週末我的客戶位置部署到Tomcat。我希望你有答案。 :) – dmahapatro

+0

更好地描述客戶音樂會更詳細。我相信他並不是說'不能在Tomcat中編譯'(當然Grails可以編譯),也許他有更具體的不兼容問題? –

+0

這是對的伊戈爾。這是在編譯時遇到的幾個不兼容問題。請參閱上面附帶的錯誤日誌的更新評論。 – awongCM

回答

1

你的問題並不完全在技術上是有意義的,但我想我明白你問的是什麼,所以我給它一個去。

你實際上並沒有在tomcat環境下編譯某些東西,而是在tomcat中運行某些東西。但是可以使用grails run-app運行grails應用程序,從grails環境中直接運行它。這適合開發,但不適合生產。

Grails確實有一個war命令可以創建一場戰爭。在這一點上,它就像任何其他Web應用程序一樣,可以在諸如tomcat的Web容器中運行。

一個Grails應用程序實際上需要groovy來編譯它,因爲它是Groovy代碼,但是創建一個war會讓它在web容器中運行。

+0

謝謝你的迴應傑夫。這有很大幫助。這對我來說也是全新的,所以我無法弄清楚Tomcat環境中的客戶端應用程序與Groovy環境不兼容的問題。從客戶的角度來看,他們希望在Tomcat環境而不是Groovy上實現系統性能提升(正如前一位開發人員所建議的那樣),因此他們得出結論,應用程序在Tomcat環境下編譯不好。 – awongCM

+0

我的客戶端向我展示了在Tomcat環境中部署的不成功war命令的錯誤日誌。我可以告訴你日誌,看看它是否對你有意義。 – awongCM

+0

你是說'grails war'失敗了嗎,或者一旦你部署了WAR,Tomcat就無法啓動?你能發佈錯誤嗎? – rcgeorge23

1

這個問題並沒有多大意義。是的,Grails帶有一個Tomcat插件,可以使本地開發更加方便,但這完全獨立於您部署到生產的方式和位置。實際上,Grails以前使用Jetty作爲其開發模式服務器,並且仍然有一個插件。

當您將Grails應用程序部署到「真實」服務器時,您只需創建一個WAR文件。最簡單的方法是運行grails war,但可以自定義。這將編譯所有代碼,包括GSP,並打包所有內容,包括JAR依賴項。然後你將它部署到Tomcat/WebLogic/JBoss /任何 - 幾乎任何servlet容器。之後沒有編譯,因爲WAR文件包含編譯類。此外,無需在服務器上安裝Grails或Groovy,因爲您創建的WAR文件在WAR中將包含Groovy JAR,Grails JAR和所有其他依賴JAR。

更可能出現的問題是您正在開發代碼並與它們共享,他們正在嘗試構建並部署它,但存在依賴性問題。這不太可能與Tomcat有任何關係。

+0

謝謝伯特。正如我上面所說的評論,這對我來說也是全新的,我試圖收集整個畫面,他們的部署設置讓客戶感到困擾。如果你有興趣,我可以告訴你日誌文件。 – awongCM