2016-11-27 85 views
2

我在liferay 7中部署了一個portlet,它已經成功部署並可供使用。我想替換jsp文件,在早期版本中,我可以在tomcat/webapps文件夾中看到我的應用程序,並快速替換它。 現在我無法找到liferay 7中爆炸的戰爭。我只能看到osgi/war文件夾中的戰爭。 有人可以幫助我。 在此先感謝。在Liferay 7 tomcat中,在獲取拷貝到osgi文件夾後,war爆炸了

+0

Liferay IDE團隊正在開發Liferay 7.0這樣的功能:https://issues.liferay.com/browse/IDE-3743。如果您有興趣,請爲此問題投票。 – stiemannkj1

回答

1

你不應該依賴這樣的行爲。在以前的版本中,應用程序服務器的任務是在運行時編譯更改的JSP。但是,這在生產系統中是不好的做法,並且會嚴重影響您的可維護性。如果您需要頻繁更新一些UI代碼,我建議您更改實施以使用ADT(應用程序顯示模板),例如通過Freemarker或Velocity。這些意味着在運行時更新,其中JSP更新是Tomcat默認(開發友好,生產敵對)配置的副作用

+0

感謝您的回覆。我認爲將不得不使用新的ADT。我同意JSP對於timcat是一個副作用 – Hitesh

2

儘管我大部分都同意Olaf的寫法,但我確實理解需要能夠在JSP文件中進行更改並在開發期間快速嘗試。恐怕我還沒有解決方案。

然而,讓我來回答你問的問題:哪裏是戰爭的Liferay爆炸OSGi的文件夾中得到複製後7 tomcat的

它不是(至少不是辦法它由應用程序服務器完成)!在Liferay 7中部署WAR文件時,它會自動(即時)將其轉換爲OSGi包並將其安裝到OSGi運行時。現在Liferay完全負責部署插件,不需要依賴各種應用程序服務器。

請注意:每個軟件包都有自己的狀態文件夾。在Liferay中,這些文件位於<LIFERAY_HOME>/osgi/state。如果您知道捆綁ID,您可以輕鬆找到它。它可能(我沒有檢查),你會在那裏找到一些JSP文件。我寫這個的原因是爲了警告你(如果你自己想出來)到切勿手動修改軟件包的狀態文件夾。這樣做可能會制約整個環境。在更糟糕的情況下,您可能需要在乾淨的環境中重新部署所有內容。