idea启动多个tomcat失败

Intellij idea中,为在本地调试两个系统之间的调用,配置两个本地tomcat server,设置不同的端口号,如8081和8082,Deploy中加入两个系统各自的Artifact xxx:war, Application context设置为“/“,即访问地址分别为http://localhost:8081/ 和 http://localhost:8082/ 。

问题来了,分别单独启动两个server时都能成功;但是同时启动两个系统时,两个系统都会出现问题。其中较先启动的server报错为:StandardServer.await: Invalid command ” received,然后会有一个系统报出异常,提示找不到xml或者properties等。

寻求解决方法

报出的找不到xml或properties等异常,肯定是误报,因为单独启动时是没有问题的。

根据StandardServer.await: Invalid command ” received百度或者google,得到的结果基本是端口的问题。但是我已经配置了不同的端口号,除上述的http port外,我还查看了server.xml中的shut down port、ajp port等等,均不相同。大略可以排除端口号的问题。

请教同事,同事解释Application context不能同为”/”,Intellij会将web发布到tomcat目录下的ROOT中,两者必然冲突。提供了两种解决方案:

  1. Application context区别开,如”/weba/”和”/webb/”
  2. 将tomcat安装目录复制一份,用两套tomcat部署

我恍然同时,又觉得Eclipse完全可以实现啊,Intellij这都实现不了是不是有点low了。

问题解决

最终的最终,我发现了问题所在。在Deploy中加入的Artifact不应该是war,而应该选择第二种war explored!

搜索了war和war explored的区别。网上大都在讨论两者最大的区别是explored支持热加载,方便本地修改调试。但是针对本文的问题,没有找到直接解释。

自己浅析一下:war理所当然会打为war包,发布时候脱离了你本地项目目录,发布到了Tomcat目录\webapps\ROOT下;explored方式,是将web root指向了你的本地项目。因此war形式会产生冲突,而explored方式不会,且explored方式可以热加载。

但经验证,两个项目都设置成 war explored还是会报错,于是只能一个设置成war 另一个设置成war explored。这样就可以了,还有一种就是设置两个项目的Application context不能同为”/” 。让运行的资源分开放。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

IIS 8:IIS 入门

深埋在您的 Microsoft 服务器 (2008年、 2008 R2 和 2012年的版本) 的范围内是最强大的 Web 服务器可用。 它只等待你来发挥其全部...

4065
来自专栏IT笔记

Linux运维必须掌握的150个常用命令

有小伙伴留言说之前看了我分享里有一篇Linux基础命令详细版,但是太长,问我有没有简洁版的。 于是我就整理了下,以下这些命令,被称为“Linux运维必须掌握的1...

7178

6 利用Docker .NET应用程序模板制作您的容器应用程序(第2部分)

在最后一篇文章中,我们用各种模板进行了设置。现在我们需要让他们工作起来了。

2318
来自专栏Rainbond开源「容器云平台」

「Rainbond最佳实践」Tomcat配置Redis实现Session共享

2072
来自专栏日常工作总结

Kubernetes中Consul重启自动加入集群实践

近期频繁的容器母机调整导致我们的业务需要多次重启,不得不寻找一种自动重建Consul集群的方式。在网上搜索和学习一番后发现,基本没有针对Kubernetes容器...

3093
来自专栏个人分享

Linux知识体系之路径属性与目录

  最近在看鸟哥的Linux私房菜,我觉得这本书还是很不错的。这里进行相关的总结。

1071
来自专栏黑白安全

无需ROOT在手机安装kali工具集

https://github.com/LionSec/katoolin这个链接就是我们要安装的工具

1733
来自专栏沈唁志

【学习笔记收藏】LNMP相关安装软件、配置文件位置

1622
来自专栏云原生架构实践

Docker Data Center系列(四)- 离线安装UCP和DTR

2223
来自专栏草根专栏

学习docker on windows (1): 为什么要使用docker

为什么要用Docker? 如果我们想使用某种pc软件, 那么在互联网上查找并安装软件的流程大致如下图: ? 那么这就有几个问题要弄清楚: 从哪里获得软件 Ap...

3946

扫码关注云+社区

领取腾讯云代金券