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. 在web.xml中包含文件
- 2. a.h包含在b.h中,我在源文件中包含b.h,是否需要在源文件中包含a.h?
- 3. 如何指定要包含在WAR文件中的文件?
- 4. 包含war文件中的源文件
- 5. 在html網站中是否需要包含文件?
- 6. .NET配置文件 - 我是否需要將其包含在安裝程序中?
- 7. 如何在web.xml中包含其他配置文件
- 8. datacontrols.dcx文件中包含什麼?它是否包含在應用程序的.war文件中?
- 9. Magento - 在phtml模板文件中包含/需要php文件
- 10. web.xml文件是否過時?
- 11. 使用jar命令在war文件中包含隱藏文件
- 12. 爲什麼Warble在war文件中包含.class文件?
- 13. 將文件包含在war類文件夾中
- 14. 如何創建ear文件,並在其中包含war和jar文件
- 15. 檢查是否實際需要包含的JavaScript文件
- 16. 部署ckeditor時,我是否需要包含plugins文件夾?
- 17. m3u8文件是否可以包含其他m3u8文件?
- 18. 是否需要頭文件?
- 19. 是否需要resx文件?
- 20. 更改屬性文件後我們是否需要部署war
- 21. 在JSP中是否需要重新聲明包含文件中的標記庫?
- 22. 可能%包含文件在Mako中是否存在文件?
- 23. 結構:包含需要的文件
- 24. 包含或需要一個vfsStream文件
- 25. 如何將混淆的jar文件包含到war文件中
- 26. 從包含WAR文件的EAR文件中讀取屬性
- 27. 嵌入Tomcat的自包含war文件?
- 28. 是否可以在包含文件中使用包含文件作爲變量
- 29. java包中的jaxb.properties文件未包含在Maven中.war
- 30. 當在PHP中鍵入一個類時,是否需要包含類文件?
就我所知,它只需要一個'portlet.xml'。 – home 2012-01-05 21:20:20