2011-06-02 16 views
2

我試圖讓現有的應用程序顯示爲Liferay中的portlet。我已經確認WAR文件將在Tomcat/Jetty中部署。顯然,我應該能夠簡單地將WAR文件複製到Liferay的deploy文件夾中,Liferay將負責其餘的部分。Liferay Web應用程序集成(WAI)問題

Portlet確實顯示在「添加」菜單中,但是一旦添加它,我就會收到404錯誤。路徑似乎是錯誤的。

的Liferay似乎試圖去的路徑是:http://localhost:8080/web/guest/home/-/waiapp/jms-gui/

但是,應用程序在運行:http://localhost:8080/jms-gui/secure/jmsPortlet

我不知道要改變什麼或如何配置此得到它工作。任何幫助,將不勝感激。

感謝, 邁克爾斯基

回答

1

顯然,我應該能夠簡單地 WAR文件複製到Liferay的部署 文件夾,Liferay將採取 其餘的照顧。

不,這是不正確的。

Liferay是portlet容器。 通過「現有應用程序」,您可能意味着通常的java webapp,基於Servlet API。 Portlet擁有自己的API,您不能只採用基於Servlet的webapp,並將其轉換爲portlet webapp而不更改代碼,因爲Portlet與Servlet不同。

就你的情況而言,如果你願意的話,你可能會選擇iFrame portlet,它可以將你的webapp部署到Liferay所在的同一個Tomcat上。 但是您不應該通過Liferay部署過程來部署它,因爲這是針對Liferay插件的,而不是針對通常的webapps。

+1

感謝您的信息。我讀過的文檔似乎暗示着Liferay會從戰爭中「生成」一個portlet,我不認爲這會發揮作用,但我對這個東西還是比較陌生的。事實上,這裏是鏈接:http://www.liferay.com/community/wiki/-/wiki/Main/Liferay+Web+Application+Integrator – 2011-07-07 15:42:03

+1

不客氣。 我還沒有熟悉這個WAI的東西,所以看起來我實際上並不完全正確。 但是,正如文檔所說,它並沒有比iFrame做得更多,而且(正如我懷疑的那樣)它似乎不能正常工作。 路徑是Liferay Friendly URL路徑(請參閱http://www.liferay.com/community/wiki/-/wiki/Main/FriendlyURLMapper),但爲什麼它不起作用很難說。您可能需要檢查404的access.log。 – mvmn 2011-07-10 18:31:17

1

是的,你應該可以,雖然有一些限制。 Liferay Wiki這裏是相關的文檔,比如它。我最近才通過將grails應用程序放入我的liferay服務器的熱部署目錄來查看會發生什麼。部署完成後,我開始在webapps文件夾中查看,並且很驚訝地看到portlet.xml和liferay-portlet.xml文件。果然,一旦我登錄並查看「添加門戶」菜單,就會看到一個「未定義」類別,並將我的grails應用程序作爲一個portlet。身份驗證不是共享的,我相信如果您的web應用程序有外部鏈接,您可以將其分開。仍然,非常有趣的黑客!