• Tomcat之web项目部署


    Tomcat一般用于部署JavaWeb项目。

    遇到的问题

    Linux操作系统中,在tomcat中部署项目时,一般只需要把项目war包:demo.war放到webapps下,然后启动tomcat即可。这时项目的访问路径是:http://serverpath/demo,但实际上我需要http://serverpath就能访问到项目。
    于是我修改了配置文件tomcat/conf/server.xml

    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    		   prefix="localhost_access_log" suffix=".txt"
    		   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    
    添加了`<Context/>元素`,修改为:  
    
    <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    	<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    		   prefix="localhost_access_log" suffix=".txt"
    		   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    	<Context path="/"  docBase="demo" debug="0" reloadable="true"/>
    </Host>
    

    这样我就可以以http://serverpath访问demo项目。

    问题:但这样会导致项目启动两次,由于demo项目中有定时任务,于是就会启动两个定时任务。这显然不是我想要,于是综合网上的资料,有如下解决方案。

    想要的结果

    • 可以以http://serverpath访问demo项目。
    • 项目中的定时任务只启动一次,也就是项目只启动一次

    解决办法

    • 以我服务器配置为例,我的tomcat目录的绝对路径是/opt/tomcat
    • webapps同级中新建目录webRoot(目录名随意),把demo.war解压到webRoot下,最终路径为/opt/tomcat/webRoot/demo
    • 修改tomcat/conf/server.xml配置为:
      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
      	 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
      	   prefix="localhost_access_log" suffix=".txt"
      	   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      	  <Context path="/"  docBase="/opt/tomcat/webRoot/demo" debug="0" reloadable="true"/>
      </Host>
      
      注意:docBase的值是绝对路径。
    • 最后确保只有webRoot下有demo,删除webapps下的demo,否则还是会启动两次
    • 启动tomcat即可

    其他问题

    上面的解决办法会导致我配置的log4j无法打印日志文件到logs目录。
    我的配置是:

    <properties>
        <property name="LOG_HOME" value="../logs"/>
    </properties>
    
    改为绝对路径即可:
    
    <properties>
        <property name="LOG_HOME" value="/opt/tomcat/logs"/>
    </properties>
    

    总结

    以上虽能达到我想要的结果,但相当不灵活,而且无法自动解压包,需要手动解压。

  • 相关阅读:
    论文笔记:目标检测算法(R-CNN,Fast R-CNN,Faster R-CNN,FPN,YOLOv1-v3)
    论文笔记:IRGAN——A Minimax Game for Unifying Generative and Discriminative Information
    springer论文模板参考文献的顺序问题
    CIFAR和SVHN在各CNN论文中的结果
    论文笔记:CNN经典结构2(WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet)
    latex常用符号
    python中的引用传递,可变对象,不可变对象,list注意点
    ImageNet历年冠军和相关CNN模型
    matplotlib 的颜色
    调整matplotlib的图例legend的位置
  • 原文地址:https://www.cnblogs.com/ConciseAaron/p/6062501.html
Copyright © 2020-2023  润新知