• 记录-Intellij Idea下以Tomcat运行Web项目时的位置问题


        今天本来准备把原来的一个Web项目导入到Idea下,之前这个项目是用eclipse写的,容器用的tomcat,首先导入前我把一些没用的配置文件都给删了,像什么.eclipse、.setting什么的,然后值留了src和WebContent,直接以源码文件导入到Idea下,然后配置一下tomcat什么的,这一切都没有什么问题,直到我配置完tomcat启动,下意识去看了一下Tomcat的Webapps目录,发现里面根本没有我的项目,这一下让我摸不着头脑。

        后来百度了一下,发现其实idea中配置tomcat,运行的时候其实不会把项目放到自己的webapps目录下,而是放到了

     {$user.home}/Library/Caches/IntelliJIdea2019.1/tomcat下对应的项目下。

     

     

        其中IntelliJIdea2019.1是对应的idea的版本,在{$user.home}/Library/Caches目录下一共有3个版本的idea,其他两个是我以前用过的,这就很清晰了。

     

        进入IntelliJIdea2019.1目录下的tomcat目录,发现里面就是刚刚部署到tomcat的项目 alipay,名称是通过我们的项目名转化而来,并且每个项目都有属于自己的一份tomcat配置,互不干扰。

     

       进入这个项目目录下,主要主要conf、logs和work目录,conf里面主要是配置文件,logs是日志信息,在自己的tomcat目录下是看不到项目的日志的

      

       另外就是每个项目的配置文件夹中有一个 /conf/Catalina/localhost/ROOT.xml 文件,内容如下:

      

     其中Context path对应的是idea中tomcat配置的Application context,如果是tomcat中配置的是"/",那么文件的名字就叫ROOT.xml并且Context path="",访问的时候直接ip+端口即可访问到项目,但是如果tomcat中配置了,那么该文件的名字就变成了你配置的参数的名字,并且文件中的Context path与配置的参数相对应。

     

      那么tomcat的server配置中的URL访问地址也会自动帮你加上这个名称

     

      并且/conf/Catalina/localhost/ROOT.xml 文件名与文件中的Context path参数也会与你配置的Application context保持一致

     

      其中的另一个参数docBase是指要运行的项目的部署位置,这个位置是可以指定的

       整个项目运行过程是:先将项目进行build编译,将编译后的文件放到指定位置,然后idea复制一份tomcat的conf、logs和work文件夹到${user.home}/.IntelliJIdea/system/tomcat 中,之后启动tomcat安装目录下的catalina.sh文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。

      能够解决这个问题也是参考了一个大神的博客,在这里也十分的感谢,并附上原文链接:https://blog.csdn.net/Victor_Cindy1/article/details/72680553

      结束:要善于发现问题并解决问题,经常问自己为什么,这是一个好习惯,我会继续保持,加油!

     

  • 相关阅读:
    【技术贴】每次打开excel表格都会弹出新excel。book1.xls解决方法
    【技术贴】鼠标右键盘符属性报错Volume filter WMI not found的解决办法
    解决QQ聊天QQ秀咒语为什么我不能施放咒语/看不到咒语效果?
    【java】servlet输出pdf文件到浏览器 教程
    C#抽象工厂模式的几种实现方法及比较(外摘)
    SQL 语句汇总With子句
    浅析.NET开发中代理模式的使用(外摘)
    使用设计模式构建通用数据库访问类(外摘)
    Cognos产品组件及各组件功能介绍
    游标Oracle游标汇总
  • 原文地址:https://www.cnblogs.com/yanht/p/tomcat-note.html
Copyright © 2020-2023  润新知