在IDEA中用JRebel直接将项目运行到tomcat中,部署完成之后,项目可以正常访问了。但是,上传图片却一直不成功(找不到原来的文件夹了),原来是直接写的绝对路径到tomcat下。
这里我们直接部署war exploded 而不是war包。
war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
到tomcat目录的webapps目录下去找,却没有发现自己的项目。
在tomcat的conf目录下,也没有发现Catalina/localhost/xxxx.xml配置文件
(IDEA 启动/停止 Tomcat 通过catalina.bat run/stop)
后来,在IDEA中启动项目的时候发现了一条信息:
28-Jul-2017 14:10:43.432 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/Users/archerlj/Library/Caches/IntelliJIdea2017.1/tomcat/Unnamed_xibu_5
到上面对应的项目目录下(Unnamed_xibu_5),发现了三个文件夹:
![](https://img.haomeiwen.com/i1117475/f888989af2694ba4.png)
原来在IDEA中部署项目到tomcat时,并没有把项目部署到webapps下,而是IDEA自己给每一个项目生成了一个对应的文件夹,并且生成了三个对应的文件夹,这三个文件夹中就包含了tomcat的配置和项目的部署位置。IDEA启动了我们的tomcat,但是却是使用的上面三个文件夹中的项目部署配置文件。
直接打开conf/Catalina/localhost/ROOT.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="/Users/archerlj/Desktop/myProjects/xibugangwan/target/xibu-0.0.1-SNAPSHOT" />
这里的path是指我们访问web项目的时候是否需要添加额外的路径,比如直接使用
http://localhost:8080/
还是
http://localhost:8080/xibu
这里的额外路径和IDEA中的下面的配置是对应的:
![](https://img.haomeiwen.com/i1117475/1e7a7320e90b27b2.png)
而docBase就是我们的项目的部署位置。
接下来可以直接把上传的图片存放到/Users/archerlj/Desktop/myProjects/xibugangwan/target/xibu-0.0.1-SNAPSHOT
下面即可。
另外
可以添加部署war包,然后更改额外访问路径,即可在webapps中生成对应的项目:
![](https://img.haomeiwen.com/i1117475/98a404984ebf15df.png)
这里必须指定一个额外的访问路径,如果是单独一个"/",也是不会部署到webapps下面的。当然,直接部署war包的话就不支持热部署了。
网友评论