首页 文章

tomcat一个war文件多个web应用程序

提问于
浏览
0

我有一个war文件,每个Web应用程序爆炸一次 . 这最终会为相同的jar和类使用大量空间,但是对于不同的Web应用程序 . 就我而言,这里有两个例子:

/usr/local/tomcat/conf/Catalina/localhost/turnsmith.xml:

<Context docBase  = "${catalina.home}/wmsvision/vaadinwebsite.war"
    override      = "true"
    swallowOutput = "true"
    debug         = "0">

  <Parameter name = "socketType"
      override    = "false"
      value       = "Turnsmith" />
      <!-- value       = "WMSWebsite" /> -->
      <!-- value       = "WMSWebsite-NEWCUST2" /> -->

  <Parameter name="imageDirectory" override="false" value="/usr/local/tomcat/wmsvision/wmsImages" />

  <Parameter name="videoDirectory" override="false" value="/usr/local/tomcat/wmsvision/wmsVideos" />

  <Parameter name="wmsReports" override="false" value="/usr/local/tomcat/wmsvision/wmsReports" />

  <Parameter name = "debugCommand"
      override    = "false"
      value       = "true" />

  <Valve className = "org.apache.catalina.valves.AccessLogValve"
      prefix       = "turnsmith_access_log."
      suffix       = ".log"
      pattern      = "common"/>
</Context>

然后另一个引用完全相同的war文件/usr/local/tomcat/conf/Catalina/localhost/vaadinwebsite.xml:

<Context docBase  = "${catalina.home}/wmsvision/vaadinwebsite.war"
    override      = "true"
    swallowOutput = "true"
    debug         = "0">

  <Parameter name = "socketType"
      override    = "false"
      value       = "WMSWebsite" />
      <!-- value       = "Turnsmith" /> -->
      <!-- value       = "WMSWebsite-NEWCUST2" /> -->

  <Parameter name="imageDirectory" override="false" value="/usr/local/tomcat/wmsvision/wmsImages" />

  <Parameter name = "debugCommand"
      override    = "false"
      value       = "true" />

  <Valve className = "org.apache.catalina.valves.AccessLogValve"
      prefix       = "vaadinwebsite_access_log."
      suffix       = ".log"
      pattern      = "common"/>
</Context>

这爆炸如下:

ls -ltd /usr/local/tomcat/webapps/turnsmith /usr/local/tomcat/webapps/vaadinwebsite 
drwxr-xr-x. 5 tomcat tomcat 4096 Jan  5 16:32 /usr/local/tomcat/webapps/vaadinwebsite
drwxr-xr-x. 5 tomcat tomcat 4096 Jan  5 16:32 /usr/local/tomcat/webapps/turnsmith

du -hs /usr/local/tomcat/webapps/turnsmith /usr/local/tomcat/webapps/vaadinwebsite
120M    /usr/local/tomcat/webapps/turnsmith
120M    /usr/local/tomcat/webapps/vaadinwebsite

反正有没有配置tomcat来更有效地使用磁盘空间?

作为进一步的信息,war文件包括一堆库jar . 这是他们为什么要使用这么多空间的部分原因 .

1 回答

  • 0

    创建一个目录 $CATALINA_HOME/shared/lib ,把你所有的 jar 和编辑 catalina.properties 设置为 shared.loader 看起来像这样 shared.loader=$CATALINA_HOME/shared/lib

    catalina.properties 中,您可以看到如何配置变量

    #List of comma-separated paths defining the contents of the "shared"
    # classloader. Prefixes should be used to define what is the repository type.
    # Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
    # the "common" loader will be used as Catalina's "shared" loader.
    # Examples:
    #     "foo": Add this folder as a class repository
    #     "foo/*.jar": Add all the JARs of the specified folder as class
    #                  repositories
    #     "foo/bar.jar": Add bar.jar as a class repository
    

    您也可以将jar放入tomcat服务器库路径 $CATALINA_HOME/lib ,但我建议使用第一个选项

相关问题