部署portlet需要在liferay中重新启动tomcat服务器

部署portlet需要在liferay中重新启动tomcat服务器,liferay,Liferay,我有一个portlet,它有一些库,我把它们放在lib->ext文件夹中。每次我想对代码进行一些更改并将其部署到服务器时,portal server都会显示classnotfound异常,在重新启动服务器之前,我无法运行我的portlet。 classnotfound每次都是不同的。 对于在lib->ext文件夹中没有任何lib的portlet,我没有这样的问题。 我运行Liferay 6.2.5 如何解决这个问题?tomcat的lib/或lib/ext文件夹中的类总是需要重新启动tomcat。

我有一个portlet,它有一些库,我把它们放在lib->ext文件夹中。每次我想对代码进行一些更改并将其部署到服务器时,portal server都会显示classnotfound异常,在重新启动服务器之前,我无法运行我的portlet。 classnotfound每次都是不同的。 对于在lib->ext文件夹中没有任何lib的portlet,我没有这样的问题。 我运行Liferay 6.2.5


如何解决这个问题?

tomcat的
lib/
lib/ext
文件夹中的类总是需要重新启动tomcat。我假设这些也会随着部署而更新,但不是这样

我建议您将这些类保留在portlet的
WEB-INF/lib
——至少在开发期间是这样——并且只有在它们稳定后才将它们移动到全局类路径

如果您更新到Liferay 7,您将更加灵活:当打包为OSGi捆绑包时,您的组件将真正实现热部署


另一种选择是使用支持类的热替换的工具/JVM,例如JRebel(免责声明:我自己没有使用过)

tomcat的
lib/
lib/ext
文件夹中的类总是需要重新启动tomcat。我假设这些也会随着部署而更新,但不是这样

我建议您将这些类保留在portlet的
WEB-INF/lib
——至少在开发期间是这样——并且只有在它们稳定后才将它们移动到全局类路径

如果您更新到Liferay 7,您将更加灵活:当打包为OSGi捆绑包时,您的组件将真正实现热部署


另一种选择是使用支持类的热替换的工具/JVM,例如JRebel(免责声明:我自己没有使用过)

我不在libs中进行更改,而是在使用该libs的portlet中进行更改。LIB本身是相同的。我还需要重新启动吗?谢谢你完整的回答。如果是这样的话:需要更多的信息。哪节课缺了?你能创建一个最小的项目来复制吗?另外:您是否正在生成任何在取消部署时可能不会终止的线程?一些常规类,如QueryUtil类。我将测试最小项目,但我没有任何线程。编译您的portlet,右键单击portlet->liferay->sdk->Compile。在complielib被新的生成代码替换之后,我不在libs中进行更改,而是在使用该libs的portlet中进行更改。LIB本身是相同的。我还需要重新启动吗?谢谢你完整的回答。如果是这样的话:需要更多的信息。哪节课缺了?你能创建一个最小的项目来复制吗?另外:您是否正在生成任何在取消部署时可能不会终止的线程?一些常规类,如QueryUtil类。我将测试最小项目,但我没有任何线程。编译您的portlet,右键单击portlet->liferay->sdk->Compile。在complie lib被新的生成代码替换之后。