修改Tomcat默认web程序路径遇到的问题

  1. 线上前端是nginx反向到后边的两个tomcat的架构,在搭建tomcat的时候,由于自定义了tomcat的默认web数据存储路径,导致后来更新代码的时候出现了问题。

今天上线之后,由于程序有点儿问题,更改了一下,还没等重启tomcat服务,尼玛网站就打不开了,网站首页显示一个502的页面,手机立马收到了报警短信。

1).首先检查日志,查看这段儿时间的tomcat日志,报错如下:

Sep 15, 2015 12:31:06 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [] appears to have started a thread named [Thread-3] but has failed to stop it. This is very likely to create a memory leak.
Sep 15, 2015 12:31:06 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
SEVERE: The web application [] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [[email protected]]) and a value of type [com.ibatis.sqlmap.engine.mapping.result.ResultObjectFactoryUtil.FactorySettings] (value [com.ibatis.sqlma[email protected]566edb2a]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
Sep 15, 2015 12:31:06 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks

一直都是报这几行错误,知道代码更新正确之后,经过我的各种baidu、google,终于知道了问题的原因。

问题出现的原因:

自定义tomcat默认web路径的时候,开启了自动部署功能,自动加载了更新的class程序文件导致的。

解决办法:

vim打开server.xml这个文件,找到这一行

<Context path="" debug="0" docBase="/data/web" reloadable="false"/>

这里边我修改默认的web程序存储路径webapps为/data/web,

reloadable:是否自动加载新增或改变的class文件.

这个我之前写的是true,需要修改成false,然后再重启tomcat即可。

时间: 2024-10-19 08:46:11

修改Tomcat默认web程序路径遇到的问题的相关文章

JavaWeb-06(Dom4j技术及Schema 约束、Tomcat与Web程序结构)

JavaWeb-06 JavaWeb-Dom4j技术及Schema 约束.Tomcat与Web程序结构 DOM4J及Schema 一.Dom4j解析(掌握) DOM4J解析XML文档 a. Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性. b. Dom4j是一个非常优秀的Java XML API,具有性能优异.功能强大和极

修改Tomcat默认端口号,避免与IDEA冲突

修改Tomcat默认端口号,避免与IDEA冲突 APT安装默认位置如下 /var/lib/tomcat8/conf 修改server.xml中的8080端口为8088或其他. 重启服务,试试看效果. service tomcat8 restart 跟IDEA中的8080不冲突了. 原文地址:https://www.cnblogs.com/jiqing9006/p/9864098.html

JavaWeb-07(tomcat与web程序结构与Http协议与Servlet基础)

JavaWeb-07 JavaWeb-tomcat与web程序结构与Http协议与Servlet基础 HTTP协议(记住) 1.http协议:规定了客户端和服务端交流时的数据格式 a. WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议. b. HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式. c. HT

javaweb回顾第二篇tomcat和web程序部署

前言这篇主要说下关于tomcat中一些属性和web程序的简单部署,可能在实际开发有更好的部署方式,但是这也是一个基础. 1:tomcat 关于tomcat估计只要接触java的人都听过这个名字,那我们都知道Servlet运行的话需要一个运行环境,也就是我们常说的Servlet容器,那么tomcat就是一个免费开源的Servlet容器.做过.net开发的应该知道IIS,其实tomcat和IIS一样都是具有处理HTMl页面的能力,当然也能处理Servlet和jsp. 下面是一个tomcat服务器接收

基础知识回顾第二篇tomcat和web程序部署

前言这篇主要说下关于tomcat中一些属性和web程序的简单部署,可能在实际开发有更好的部署方式,但是这也是一个基础. 1:tomcat 关于tomcat估计只要接触java的人都听过这个名字,那我们都知道Servlet运行的话需要一个运行环境,也就是我们常说的Servlet容器,那么tomcat就是一个免费开源的Servlet容器.做过.net开发的应该知道IIS,其实tomcat和IIS一样都是具有处理HTMl页面的能力,当然也能处理Servlet和jsp. 下面是一个tomcat服务器接收

tomcat部署web程序

* 如何部署WEB程序(三种)    * 项目复制到webapps目录下.         * 通过配置虚拟路径的方式.     * 直接修改配置文件      * 写到tomcat/conf/server.xml      * 找到<Host>标签,配置到Host标签的中间      * 目的:通过配置,配置访问路径,准确找到c:\bb的文件       * <Context docBase="文件夹的真实目录" path="虚拟路径(访问路径)"

题库 tomcat与web程序结构与Http协议与HttpUrlConnection

1.下面关于tomcat服务器描述正确的是() (难度A) A. tomcat是一个开源的免费的web服务器,它支持javaEE规范 B. tomcat不是一个开源的免费的web服务器,它支持servlet规范 C. tomcat是一个开源的免费的web服务器,它支持servlet规范 D. 以上说法都不对 答案:C 2.tomc安装成功后默认的端口是() (难度A) A. 80 B. 8888 C. 8080 D. 以上都不对 答案:C 3.访问tomcat部署的应用,出现404错误,原因是(

eclipse配置tomcat及修改tomcat默认根目录

1.安装eclipse for j2ee和tomcat: 2.下载tomcat对eclipse的插件:http://www.eclipsetotale.com/tomcatPlugin.html 下载后,解压.解压后的文件放到eclipse的plug目录中,重启后可看见tomcat的图标(下载3.3.1版本的没有图标生成,改下3.3.0) 3.配置tomcat的版本 Windows-->Tomcat,如图: 4.配置Server: 5.修改tomcat的默认默认根目录: 1)打开tomcat安装

修改Tomcat默认端口

windows 上修改tomcat 的默认端口为 80 [1.]检查 80端口是否被占用 cmd --->netstat -nao |  findstr 80 TCP    0.0.0.0:8009           0.0.0.0:0              LISTENING       6892 TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       6892 TCP    0.0.0.0:49156