在Web应用程序中共享开源(Spring / Spring Security / Hibernate / etc)jar
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Web应用程序中共享开源(Spring / Spring Security / Hibernate / etc)jar,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2794字,纯文字阅读大概需要4分钟。
内容图文
![在Web应用程序中共享开源(Spring / Spring Security / Hibernate / etc)jar](/upload/InfoBanner/zyjiaocheng/784/9bff8e8efde242f6a574f2f65c359c4f.jpg)
我们有一堆基于开源框架的Java EE应用程序,如上所述.每个应用程序的WEB-INF / lib都有以下常见的jar:
antlr-2.7.6.jar*
aopalliance-1.0.jar*
asm-3.3.1.jar*
aspectjrt-1.6.8.jar*
aspectjweaver-1.6.8.jar*
cglib-2.2.jar*
commons-beanutils-1.8.3.jar*
commons-collections-3.1.jar*
commons-dbcp-1.4.jar*
commons-digester-2.1.jar*
commons-fileupload-1.1.1.jar*
commons-io-2.0.1.jar*
commons-logging-1.1.1.jar*
commons-pool-1.5.6.jar*
dom4j-1.6.1.jar*
hibernate-jpa-2.0-api-1.0.0.Final.jar*
hibernate-tools.jar*
hibernate-validator-4.1.0.Final.jar*
hibernate3.jar*
jackson-all-1.7.5.jar*
javassist-3.12.0.GA.jar*
javax.inject.jar*
log4j-1.2.16.jar*
org.springframework.aop-3.0.5.RELEASE.jar*
org.springframework.asm-3.0.5.RELEASE.jar*
org.springframework.beans-3.0.5.RELEASE.jar*
org.springframework.context-3.0.5.RELEASE.jar*
org.springframework.context.support-3.0.5.RELEASE.jar*
org.springframework.core-3.0.5.RELEASE.jar*
org.springframework.expression-3.0.5.RELEASE.jar*
org.springframework.jdbc-3.0.5.RELEASE.jar*
org.springframework.orm-3.0.5.RELEASE.jar*
org.springframework.transaction-3.0.5.RELEASE.jar*
org.springframework.web-3.0.5.RELEASE.jar*
org.springframework.web.servlet-3.0.5.RELEASE.jar*
poi-3.7-20101029.jar*
slf4j-api-1.6.1.jar*
slf4j-ext-1.6.1.jar*
slf4j-log4j12-1.6.1.jar*
spring-security-acl-3.0.5.RELEASE.jar*
spring-security-aspects-3.0.5.RELEASE.jar*
spring-security-config-3.0.5.RELEASE.jar*
spring-security-core-3.0.5.RELEASE.jar*
spring-security-taglibs-3.0.5.RELEASE.jar*
spring-security-web-3.0.5.RELEASE.jar*
testng-6.0.1.jar*
tiles-api-2.2.2.jar*
tiles-core-2.2.2.jar*
tiles-jsp-2.2.2.jar*
tiles-servlet-2.2.2.jar*
tiles-template-2.2.2.jar*
validation-api-1.0.0.GA.jar*
我们在部署时遇到了permgen错误,每次战争都是20 MB,第三方罐子就是大部分.
由于所有应用程序都适用于所有开源项目的相同版本,我想知道如果我移动Spring,Spring Security,Spring Tiles,Hibernate,Hibernate相关的第三方jar(cglib,antlr等)是否可行, logging和apache-commons.*到TOMCAT / lib文件夹.
我记得从Struts时代(2003年或2004年)开始,每个web-app都应该拥有它自己的struts’jars副本,并且不鼓励在应用程序服务器级别共享.是否适用任何此类挫折(除了版本控制)?
作为一个辅助问题:是否有一般规则可以遵循哪些第三方罐子可以或不可以共享(如果在文档中没有明确提及的话?
我会感激任何帮助.
谢谢.
解决方法:
根据您引导应用程序的方式,您可以移动大部分(或全部)这些罐子(测试并查找).您需要注意的是依赖于静态初始化器引导的框架.如果我没记错的话,Struts从一个读取struts-config文件的静态初始化器配置自己.由于静态初始化程序仅在第一次加载类时运行,因此在共享类加载器中不能很好地工作.
更重要的是,您的问题可能不会因为将jar移动到共享加载器而结束. Spring和Hibernate将在运行时为实体和AOP代理(用于事务支持等)创建大量动态类,这些代理将驻留在永久代中.通常,对于在Spring和Hibernate上很重的应用程序,您必须增加permgen空间(例如,通过Oracle HotSpot VM上的-XX:MaxPermSize参数).
内容总结
以上是互联网集市为您收集整理的在Web应用程序中共享开源(Spring / Spring Security / Hibernate / etc)jar全部内容,希望文章能够帮你解决在Web应用程序中共享开源(Spring / Spring Security / Hibernate / etc)jar所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。