ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 要在多个portlet之间共享的Singleton类

2019-10-07 00:01:13  阅读:220  来源: 互联网

标签:java liferay


我在Liferay应用程序中有几个Singleton类,它们包含几个配置参数,ServiceLocator包含我需要使用的WebServices实例.

我已将这些类放在一个jar中,该jar被声明为对我所有portlet的依赖.

问题是,我已经在这些单例类中放置了一些用于初始化的日志记录行,当我部署我的portlet时,我可以多次看到这些行,每个portlet一次,因为每个portlet都有自己的类上下文.

对于AppConfig类,它可能不是什么大问题,但我的ServiceLocator实际上确实拥有一堆占用大量内存的引用.

有什么方法可以将这些Singleton引用放在Liferay Portal中的某种共享上下文中吗?

解决方法:

问题是每个Portlet都在自己的WAR文件中运行,而aech war文件有自己的类加载器.

通常,当我必须达到这样的要求时,我必须将Singleton classen放在JAR文件中,并将此JAR文件放在公共类加载器库中,而不是将其打包到每个WAR中. (在Tomcat中:< tomcatHome> / common / lib或类似的东西)

然后你还必须将所有依赖库放入该公共lib目录中.但是,不知道如何在Liferay中做到这一点.对于tomcat,请参阅以下主题:stackoverflow.com/questions/267953/和本文档:http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html.取决于Servlet容器.

标签:java,liferay
来源: https://codeday.me/bug/20191006/1863184.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有