补:刚改完 本地弄好了 可以运行了,然后回来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++ 比记事本编辑要强很多。
我们首先找到 这么一栏
这里就是默认第一个开启的端口8080.
继续向下看
看到host
首先针对第一个war包,我们要知道我们对一个Service标签即 <Service></Service>为一个war包部署。
我这里对其起名为我在IDEA中的模块名。
然后Connector中的port不用变,下方的8009也不用变。
这里我也做个改名,具体是改变了什么我也忘记了。
Host这里,name即为我们在我网页中 url栏里 localhost:xxxx的 localhost,然后appBase的值就是tomcat下文件夹的名字。
最关键的一步在下边:
在Host标签里,加一个
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
然后,一定要对其余的 端口进行更改,比如我第二个模块 端口改为8081
这里的8009也要改为其余的非8009的。
下边就是跟着第一个照猫画虎 改就可以了。
三个搞定后,双击tomcat下 /bin/startup.bat 启动tomcat 就可以用 localhost:8080 访问了。