tomcat软连接的使用

  软连接说白了就是一个映射。可以映射文件,也可以映射目录。linux和windows都可以做软连接,加入现在把文件A.txt做软连接到B.txt:

  linux命令如下:

ln -s A.txt B.txt

  windows命令如下:

mklink B.txt A.txt

  建立软连接的目的是隔离tomcat里目录或文件,主要是隔离webapps里的项目或者静态资源文件,以实现部署和维护的方便。在tomcat里context.xml文件里设置allowLinking="true"就可以打开软连接,根据tomcat版本不同有不同的设置:

  tomcat567版本:

<Context allowLinking="true" /> 

  tomcat89版本:

<Context>
    <Resources allowLinking="true" />
</Context>

  根据context.xml文件的不同位置又有3种设置方法:在conf目录下修改context.xml,所有在webapps里的项目都支持软连接;在webapps下项目自己的META-INF里修改context.xml,只有该项目自己支持软连接;在confCatalina主机名下修改项目名.xml,同样只有该项目自己支持软连接。

  针对上面第一种设置方法举个例子,我在Eclipse配置了一个tomcat9的Server,里面的项目叫Struts2,我要对静态资源文件index.jsp做软连接到F盘:

  我第一步就是修改eclipse里面的context.xml,直接在eclipse打开加入<Resources allowLinking="true" />这一行即可:

  然后我要去workspace里Struts2项目里把index.jsp文件移动到F盘根目录并改名了hello.jsp,在cmd命令行里执行:

mklink index.jsp F:hello.jsp

 

  最后在eclipse启动tomcat,我们本来是访问index.jsp的,现在其实是去F盘访问了hello.jsp:

 

  再针对上面第三种设置方法举个例子,现在我想把安装在D盘的tomcat8自带的examples项目软连接到F盘的test目录中:

1、复制D:wulinfeng omcatapache-tomcat-8.5.13webappsexamples到F盘根目录,改名为test,删除D盘examples目录:

2、在D:wulinfeng omcatapache-tomcat-8.5.13webapps下建立到F: est的软连接examples:

D:wulinfeng	omcatapache-tomcat-8.5.13webapps>mklink examples F:	est
为 examples <<===>> F:	est 创建的符号链接

3、在D:wulinfeng omcatapache-tomcat-8.5.13confCatalinalocalhost下新建examples.xml,examples.xml内容为:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resources allowLinking="true" />
</Context>

4、在D:wulinfeng omcatapache-tomcat-8.5.13in下执行startup.bat,启动tomcat

D:wulinfeng	omcatapache-tomcat-8.5.13in>.startup.bat
Using CATALINA_BASE:   "D:wulinfeng	omcatapache-tomcat-8.5.13"
Using CATALINA_HOME:   "D:wulinfeng	omcatapache-tomcat-8.5.13"
Using CATALINA_TMPDIR: "D:wulinfeng	omcatapache-tomcat-8.5.13	emp"
Using JRE_HOME:        "D:Program FilesJavajdk1.8.0_101"
Using CLASSPATH:       "D:wulinfeng	omcatapache-tomcat-8.5.13inootstrap.j
ar;D:wulinfeng	omcatapache-tomcat-8.5.13in	omcat-juli.jar"

5、在浏览器请求localhost:8080/examples

原文地址:https://www.cnblogs.com/wuxun1997/p/6769971.html