【问题标题】:Portlet is unregistered (memory leak?)Portlet 未注册(内存泄漏?)
【发布时间】:2023-05-23 08:25:01
【问题描述】:

我在 Eclipse 中使用 Lifeay IDE 创建了新项目(Liferay Project with Plugin Portlet Type 和 JSF 2.x.x Portlet Framework)。我没有做任何更改,将项目添加到 Liferay v6.1 CE Server (Tomcat 7) 并启动了这个服务器。

很遗憾,我收到了这个错误(portlet 未注册)。

(...) 09:05:08,828 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]][PluginPackageUtil:1033] 读取 MyFaces-portlet 的插件包 2013-08-02 09:05:09 org.apache.catalina.core.ApplicationContext 日志 信息:关闭 Spring 根 WebApplicationContext 09:05:09,037 INFO [ContainerBackgroundProcessor[StandardEngine[Catalina]]][HookHotDeployListener:813] 未注册 MyFaces-portlet 的挂钩 2013-08-02 09:05:09 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重:Web 应用程序 [/MyFaces-portlet] 似乎已经启动了一个名为 [MultiThreadedHttpConnectionManager cleanup] 的线程,但未能阻止它。这很可能会造成内存泄漏。 09:05:26,970 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1421] 检查可用更新 09:05:26,971 INFO [com.liferay.portal.plugin.PluginPackageUtil][PluginPackageUtil:1465] 在 1 毫秒内完成检查可用更新

怎么了?

【问题讨论】:

标签: liferay portlet liferay-ide


【解决方案1】:

您必须使用 ANT 脚本构建项目。创建 portlet 时,会创建 build.xml。好像

<?xml version="1.0"?>
<!DOCTYPE project>
<project name="abc-portlet" basedir="." default="deploy">
     <import file="../build-common-portlet.xml" />
</project>

您必须使用 ant 构建此文件。当您成功构建它时,您的 portlet 战争将在 SDKPlugins\dist 文件夹中创建。并自动部署到服务器。这是热部署,您无需添加任何内容。每次部署新的 WAS 时,您都会收到“abc-portlet”已取消注册的消息,然后部署新版本。

因此,如果您收到取消部署的消息,请不要担心。它将被部署。

关于消息,portlet was unregistered 一般是在portlet没有部署成功的时候出现的。

【讨论】:

  • 我认为他的错误与此无关,因为他使用的 Liferay IDE 使用了 Liferay SDK(与 Ant)。报错是关于“内存泄漏”的问题,这里看不懂。