首页 技术 正文
技术 2022年11月8日
0 收藏 828 点赞 1,531 浏览 1676 个字

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>

总结

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,992
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,506
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,767
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844