JSR 286規範是否要求在包含Portlet的WAR中存在web.xml
文件?起初,我認爲是這樣,但後來我創建了一個沒有web.xml
的portlet,將它部署在Liferay中,並且它的工作完美無瑕。那麼它是Liferay的擴展(或者錯誤),還是沒有必要擁有這樣的文件?JSR-286 portlet是否需要在其WAR文件中包含web.xml文件?
回答
正如Olaf所說的,portlet不過是一個web應用程序。 Liferay擁有一個在Portlet自動部署時觸發的偵聽器。它爆炸戰爭並添加web.xml和必要的內容。如果你有源代碼,你可以檢查邏輯。類名是PortletDeployer,方法是getServletContent。添加web.xml並填充後,他們只需使用FileUtil.touch就可以觸摸它。
可以看到代碼[這裏](https://github.com/liferay/liferay-portal/blob/master/portal-impl/src/com/liferay/portal/tools/deploy/PortletDeployer.java#L239) 。因此,沒有'web.xml'的portlet WAR只能從部署者那裏獲得一個WAR。那麼,這不能回答我的具體問題,但無論如何澄清它!我想知道規範,但現在你的答案已經足夠了。 – brandizzi 2012-01-11 19:12:13
我真的需要挖掘規範 - 但我的假設是,它在這方面遵循servlet規範:portlet應用程序首先部署到應用程序服務器。如果servlet規範要求web.xml存在,那麼需要滿足這個要求。否則,應用服務器將不會部署WAR(這是或多或少的問題,如果WAR文件格式需要或建議的web.xml
的Liferay一旦Apperver已部署Web應用程序只能一命嗚呼的Liferay本身不關心web.xml
基於這種爭論(並且沒有看規範 - 所以我在這裏給出一個有教養的猜測),我期望JSR 不作關於web.xml的聲明。但是,它可能引用了servlet規範,而這又可能需要/推薦/提及web.xml。
如果Appservers需要它,或者如果缺少它們,它們的行爲又是另一回事。
- 1. 如何指定要包含在WAR文件中的文件?
- 2. datacontrols.dcx文件中包含什麼?它是否包含在應用程序的.war文件中?
- 3. web.xml文件是否過時?
- 4. 使用jar命令在war文件中包含隱藏文件
- 5. 如何創建ear文件,並在其中包含war和jar文件
- 6. m3u8文件是否可以包含其他m3u8文件?
- 7. 是否需要resx文件?
- 8. 更改屬性文件後我們是否需要部署war
- 9. 在JSP中是否需要重新聲明包含文件中的標記庫?
- 10. 包含或需要一個vfsStream文件
- 11. 是否可以在單獨的war文件中創建可動態插入的GWT小部件/ portlet?
- 12. java包中的jaxb.properties文件未包含在Maven中.war
- 13. 是否可以在PHP中包含/需要部分代碼的文件?
- 14. 在PHP中,如果包含一個文件本身包含另一個文件,第一個文件是否會同時包含其他文件?
- 15. 如何查找文件並在其中包含其他文件?
- 16. 如何檢查文件是否存在於war文件中?
- 17. 是否需要在另一個xrc文件中包含來自一個xrc文件的元素
- 18. 確定是否所有需要的頭文件都包含在另一個頭文件中
- 19. 是否可以包含壓縮文件中的JavaScript文件?
- 20. php是否包含鎖定文件?
- 21. 在iOS項目中包含需要外部文件的庫
- 22. Cocos2d,需要在我的實現文件中包含協議
- 23. 在Ruby中'不需要'不自動包含子文件夾嗎?
- 24. 在.war文件中使用web.xml的Spring啓動應用程序
- 25. 如何通過war文件在CQ5中配置portlet
- 26. persistence.xml未包含在gwt項目的WAR文件夾中
- 27. 我可以在WAR文件中打包多個Liferay Portlet和主題嗎?
- 28. 如何在其他js文件中包含js文件?
- 29. 在html文件中包含html文件
- 30. 要包含在Android中掃描.mp3文件的文件夾
就我所知,它只需要一個'portlet.xml'。 – home 2012-01-05 21:20:20