相关疑难解决方法(0)

如何让maven将同一个EAR内的战争共同放入EAR根目录?

我们有一个有很多战争的解决方案.从他们都使用冬眠和春天的意义来看,战争是相似的.这意味着我们在每次战争中都有许多相同的罐子.这成为一个问题,因为耳朵的大小开始增长不成比例.

我想使用Maven来计算依赖关系并将多个战争中常见的所有jar放到EAR的根目录中.

我尝试使用j2ee archetype(maven-archetype-j2ee-simple)组织我的项目,但所有的战争仍然与WEB-INF/lib中的依赖项打包在一起.有没有办法让Maven计算公共依赖关系并将它们放到EAR中,就像他在构造war或jar时能够计算所有过渡依赖关系一样?

ear dependencies maven-2 war package

22
推荐指数
2
解决办法
2万
查看次数

如何使用相同的库处理许多Web应用程序的共享库

我们有一个用Java制作的Web应用程序,它使用struts2,spring和JasperReport.此应用程序在glassfish 4.0上运行.

应用程序的库位于WEB-INF/lib文件夹中,并且在glassfish中安装4个以上的库使用相同的库.

Glassfish配置为使用1024mb用于堆空间,512m用于permgen,当我使用每个应用程序的库时,大部分内存消耗在struts操作和spring aop类中(使用netbeans profiler).

我们遇到的问题是每个应用程序在类加载器中使用库所消耗的内存量,因为它很高并且会生成PermGen错误,我们也注意到应用程序运行速度越慢,用户越多.

因为我们尝试使用共享库,将它放在domain1/lib文件夹中,发现使用单个部署的应用程序,加载时间和内存消耗要低得多,并且应用程序通常工作得更快.但是当我们在服务器上部署其余的应用程序时,只有第一个加载的应用程序运行良好,其余的在我们调用struts2动作时出错.我们认为这是因为每个应用程序在struts2和log4j上的设置略有不同.

我们还尝试在glassfish上只放置某些库,并在应用程序中只留下struts2,但它显示了InvocationTargetException错误,因为所有库都依赖于来自apache-common的lib,如果我们将这些lib放在一个地方或另一个地方也没关系.此外,如果我们把它放在两个地方,应用程序不会启动.

  1. 有没有使用共享库的特殊设置或最佳实践?
  2. 有没有办法使用共享库,但每个应用程序加载设置?或者我们必须更改设置以使它们完全相同?

java struts2 glassfish shared-libraries java-ee

12
推荐指数
1
解决办法
4727
查看次数