3

我在 liferay 7 中部署了一个 portlet,它已成功部署并可供使用。我想替换 jsp 文件,在早期版本中,我可以在 tomcat/webapps 文件夹中看到我的应用程序并快速替换它。现在我无法在 liferay 7 中找到爆炸的战争。我只能在 osgi/war 文件夹中看到战争。有人可以帮我吗。提前致谢。

4

2 回答 2

2

虽然我基本同意 Olaf 所写的内容,但我确实理解能够在 JSP 文件中进行更改并在开发过程中快速尝试它们的必要性。恐怕我还没有解决方案。

但是,让我回答您提出的问题:

在 osgi 文件夹中复制后,Liferay 7 tomcat 中的战争在哪里爆炸

它不是(至少不是应用程序服务器完成的方式)!当您在 Liferay 7 中部署 WAR 文件时,它会自动(即时)将其转换为 OSGi 包并将其安装在 OSGi 运行时中。这样现在 Liferay 完全负责部署插件,不需要依赖各种应用服务器。

请注意:每个捆绑包都有自己的状态文件夹。在 Liferay 中,那些在<LIFERAY_HOME>/osgi/state. 如果您知道捆绑 ID,您可以轻松找到它。可能(我没有检查过)您会在那里找到一些 JSP 文件。我写这篇文章的原因是警告你(如果你自己想出来的话)永远不要手动修改包的状态文件夹。这样做可能会破坏整个环境。在更糟糕的情况下,您可能必须在干净的环境中重新部署所有内容。

于 2016-11-28T10:48:14.257 回答
1

你不应该依赖这样的行为。在以前的版本中,应用服务器的任务是在运行时编译更改的 JSP。但是,这在生产系统中是不好的做法,并且完全破坏了您的可维护性。如果您需要经常更新一些 UI 代码,我建议您更改实现以利用 ADT(应用程序显示模板),例如通过 Freemarker 或 Velocity。这些是在运行时更新的,其中 JSP 更新是 Tomcat 的默认(开发友好,生产敌对)配置的副作用

于 2016-11-27T13:15:26.140 回答