2017-07-31 35 views
1

我有一个任务为我们的tomcat应用程序自动扩展堆内存。我知道这是JDK功能无法实现的,而且我正在寻找任何肮脏的(或不是)黑客来制作这种有点功能。这个需求的主要原因是在开始我们的应用程序的演示版之前,tomcat的配置很少。 换句话说,我们的应用程序的任何用户都不能访问配置JVM/tomcat。 应用程序需要〜1024M的堆内存,tomcat8的默认值是256M,这不适合我们的目标。Tomcat。动态扩展堆内存

在这一刻我有两个可能的解决方案:

  1. 的一个.SH /蝙蝠脚本将配置Tomcat。专业人士 - 它会做的工作,缺点 - 这是另一个配置演示站点(复制脚本)
  2. 我们的应用程序的包装,它在同一个war文件中,并在需要时配置tomcat。利弊 - 它会做的工作,并没有新的配置点(只需安装tomcat和复制战争文件),

是否有另一种方式做更多...常见和简单的方法?

编辑的主要目标是使安装我们的应用程序的步骤如下:

  1. 安装Tomcat
  2. 复制战争文件
  3. 启动Tomcat

没有任何额外的配置,只是复制战争并启动tomcat

+2

如果您使用-Xms和-Xmx标志,JVM会自动执行此操作。这还不够吗?请参阅:https://stackoverflow.com/q/14763079/466738 –

+0

setenv.sh/bat正是假设标准配置方式。请参阅https://stackoverflow.com/questions/43218169/what-exactly-setenv-sh-is-used-for-in-tomcat/44583906#44583906。该文件不存在于默认安装中,您只需创建该文件并设置“CATALINA_OPTS”与您的预期内存配置,然后您就可以开始使用了。无需发明自己的机制 –

+0

主要目标是排除安装我们的应用程序的一方的任何行为,它看起来不是常见问题=( –

回答

1

这通常通过在安装脚本中包装tomcat的安装和配置来解决。优点:最终用户只需下载安装程序并运行它;缺点:安装脚本必须适合最终环境(一个适用于Windows,一个适用于Linux),并且很难编写。一个简单的方法是提供一个包含readme.txt文件和一个install.bat(或install.sh)的zip文件。如果配置非常复杂,另一种方法是直接配置一个VM(VMDK是一个de事实上的标准),并让用户安装他们提供的虚拟器。