补:刚改完 本地弄好了 可以运行了,然后回来IDEA 报

Application Server was not connected before run configuration stop, reason:
            javax.management.InstanceNotFoundException: Catalina:type=Server

错误。

意识到是自己 server.xml改了太多东西。

改不回来了,所以又重新下了tomcat。。。。恢复了。

1.Maven集合下的项目,我的有得模块是jar包,有得是war包,所以不能单一的对某一个模块在右侧进行“package”,因为该模块是基于另一个模块的。比如我的很多模块都基于 commons 模块里的工具类。所以 要对总的那个(root)进行打包,这样下来 就可以了。

2.打包后,比如我的是三个war包。

我在tomcat下与webapps并列的文件夹中,新建三个文件夹,分别是webapps_admin,webapps_api和webapps_ui,即对应我三个war包。

3.分别将三个war包放在三个文件夹里,war包是后台(admin)的放在webapps_admin里。其他也这样放好。

4.打开tomcat下/conf里的 server.xml文件,建议下载一个notepad++ 比记事本编辑要强很多。

我们首先找到 这么一栏

多AZ部署架构 多模块部署_多AZ部署架构

多AZ部署架构 多模块部署_多AZ部署架构_02

这里就是默认第一个开启的端口8080.

继续向下看

看到host

多AZ部署架构 多模块部署_Server_03

首先针对第一个war包,我们要知道我们对一个Service标签即 <Service></Service>为一个war包部署。

多AZ部署架构 多模块部署_tomcat_04

我这里对其起名为我在IDEA中的模块名。

然后Connector中的port不用变,下方的8009也不用变。

多AZ部署架构 多模块部署_java_05

这里我也做个改名,具体是改变了什么我也忘记了。

多AZ部署架构 多模块部署_java_06

Host这里,name即为我们在我网页中 url栏里 localhost:xxxx的 localhost,然后appBase的值就是tomcat下文件夹的名字。

最关键的一步在下边:

在Host标签里,加一个

多AZ部署架构 多模块部署_Server_07

Context标签用来管理我们访问项目时 url的问题。

比如如果我没有这个标签,我在url里必须从 localhost:8080 变为  localhost:8080/mana-web-admin-1.0.0-SNAPSHOT,基于这个进行其他跳转,但是但是,我项目里配的是以 “/” 这个为基准的,所以就导致了我js文件都加载不出来。

注:这里的 mana-web-admin-1.0.0-SNAPSHOT 是我maven生成的我的项目war包的名字,也是tomcat解析成的文件夹名字。

所以这个标签就完美了解决了这个问题。

看到图中path和 docBase的属性值可以看到,docBase就是 相对路径。就是去寻找相对路径下的 

mana-web-admin-1.0.0-SNAPSHOT 这个文件夹。然后用path中的"/" 给替换了,

也就是我访问时一个“/” 就能代替 那一长串了 也和我项目刚开始设计时一样了。

由于我是三个war包,除了这个后台,还有api模块,ui模块。

所以我们要复制三个Service出来。

而这三个Service标签的不同,首先是 Service name 的不同,

第二个name就变为了  xxx-api

多AZ部署架构 多模块部署_Server_08

然后,一定要对其余的 端口进行更改,比如我第二个模块 端口改为8081

多AZ部署架构 多模块部署_多AZ部署架构_09

这里的8009也要改为其余的非8009的。

多AZ部署架构 多模块部署_多AZ部署架构_10

多AZ部署架构 多模块部署_java_11

多AZ部署架构 多模块部署_多AZ部署架构_12

下边就是跟着第一个照猫画虎 改就可以了。

三个搞定后,双击tomcat下 /bin/startup.bat 启动tomcat 就可以用 localhost:8080 访问了。