这是我第一次在这里发帖提问,我会尽量让我的问题清楚.
我试图找到一个开发Java webapps的最佳流程.经过数月的反复试验,我的Web开发环境由以下部分组成:
框架:Apache Wicket 1.4.16
IDE:eclipse Galileo,m2eclipse插件
构建工具:Maven 2
数据访问:EclipseLink 2.1.1通过JPA 2.0(使用StaticWeave)
RDBMS:MSSQL 2005或更高版本,带有jTDS
DI:Google Guice 2.0
开发Web容器:嵌入在Maven Jetty插件中的Jetty服务器.
目标Web容器:Tomcat 6.x或更高版本
我使用maven Jetty插件测试运行我的webapps,启用JPDA,同时需要行精度跟踪.
每当对源代码进行更改时,我都必须重新加载我的应用才能生效.按ENTER重新加载是好的,但经过几次重新加载(大约3~5取决于我的PermGen设置),抛出OutOfMemoryException,而不是我必须关闭并再次启动我的应用程序.我知道自动重新加载可以通过配置实现,但它只会导致OOME更快(由于过多的重新加载).
谷歌搜索后,我意识到有一些内存泄漏问题.我已经尝试放大MaxPermSize设置,但我的装备上的RAM是有限的,设置为非常大的东西是不合理的.BTW,内存泄漏检测是在Tomcat 7中引入的,我发现大多数内存泄漏来自jTDS,Google Guice和Wicket本身,但我无能为力.
有什么我可以做的加速我的开发过程吗?为了减少重新加载时间,我应该转移到更高级的Web容器,例如Glassfish(抱歉,我在这里买不起WebLogic或WebSphere.)或任何东西.
在此先感谢,欢迎任何评论!