有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Do JSR286 Portlet需要一个web。xml文件在他们的WAR文件中?

JSR286规范是否要求在包含Portlet的WARs中存在web.xml文件?起初,我这么认为,但后来我创建了一个没有web.xml的portlet,在Liferay中部署了它,它工作得非常完美。那么它是Liferay的一个扩展名(或bug),还是不需要这样的文件


共 (2) 个答案

  1. # 1 楼答案

    正如Olaf正确地说的那样,portlet只不过是一个web应用程序。Liferay有一个监听器,在portlet自动部署时触发。它爆发了战争,增加了网络。xml和必要的内容。如果有源代码,可以检查逻辑。类名为PortletDeployer,方法为getServletContent。在添加web之后。xml并填充它,他们只需使用FileUtil来触摸它。触摸

  2. # 2 楼答案

    我真的必须深入研究规范——但我的假设是,在这方面它遵循servlet规范:portlet应用程序首先部署到应用程序服务器。如果servlet规范需要一个web。要实现xml,需要满足这一要求。否则Appserver将不会部署WAR(WAR文件格式是否需要是否推荐web.xml或多或少是个问题

    Liferay只有在AppServer部署了web应用程序后才会启动。Liferay本身并不关心web。xml

    基于这一争论(不看规范——所以我在这里给出了一个有根据的猜测),我希望JSR286不会对web发表声明。xml。然而,它可能引用servlet规范,这反过来可能需要/推荐/提及web。xml

    如果应用服务器需要它,或者如果缺少它,它们的行为又是另一回事