windows 配置Tomcat8.5多实例,实现开发包文件(Workspace)与源程序分离

来源:互联网 发布:网络连接流程 编辑:程序博客网 时间:2024/06/14 06:09

最近一直在使用微软的vscode ,发现是一个十分强大的前端开发工具,最近又推出了java Extends tool 包括redhat 编写的基于Eclispe功能的插件,以及MS在这个插件基础上开发debug插件,真心一个好用。唯一的缺点就是需要手动添加project,目前只支持maven和eclipse的项目,废话不多说了。

Tomcat支持多实例,就是一个机器开的多个服务,当然这些服务必须被定义在不同的端口,另外考虑到开发文件不想和服务器文件混在一起,管理上会用混乱的感觉,所以经过1天的研究,把相关的技术过程记录一下。

1、本次配置的是使用Tomcat最近的稳定版本8.5

下载,解压到一个本地目录如下图

2、在本地目录找一个文件夹,用于放置不同的tomcat实例,我就放在了我的vscode工作目录下了


3、在复制Tomcat程序包中的conf文件夹、startup.bat、shutdown.bat到多实例包中,其他文件夹tomcat会帮助创建


4、最重要的部分,也是浪费我时间最多的部分,修改bat文件,因为之前对批处理文件了解的不是特别多,这次也是顺带学习了一下。修改该startup文件如下

@echo off

setlocal

rem Guess CATALINA_HOME if not defined
set "CATALINA_BASE=%cd%"
set "CATALINA_HOME=D:\Document\userlibery\Tomcat\8.5" #这里填写你自己程序的实际路径
if "%CATALINA_BASE%" == "" echo CATALINA_BASE is null
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
:end

shoutdown.bat文件修改一下CATALINA_HOME变量的path就可以了,不再详细说了

5、启动startup.bat文件,自动生成其他文件如下


6、在conf中修改该servlet.xml文件中的connector项,修改端口号等等,否则会出现地址冲突


7、自此tomcat多实例已经配置完成,下面是实现项目与服务器文件分离的方法,

首先,通过多实例已经实现了源程序与配置文件分离的目的,通过在实例目录中的conf\Catalina\localhost文件夹,添加xml配置文件,实现程序与server分离

文件内容如下

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:/Document/VScode/WebApp/WebContent"path="" reloadable="true" ><Resources>
<PreResourcesbase="D:/Document/VScode/WebApp/WebContent/WEB-INF/classes"classLoaderOnly="false"
className="org.apache.catalina.webresources.DirResourceSet"internalPath="/"webAppMount="/WEB-
INF/classes"/>
</Resources></Context>

当前的方法,重新定义了docBase指向,path指定了在服务其的相对路径,其应该一目了然了。自此在项目目录下WEB-INF/web.xml文件配置serlet信息就可以了



原创粉丝点击