"this web application instance has been stopped already"问题的解决

去客户现场部署实施的时候,启动项目,发现如下报错:

信息: Illegal access: this web application instance has been stopped already.  Could not load org.perf4j.helpers.MiscUtils.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1777)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
    at org.perf4j.GroupedTimingStatistics.toString(GroupedTimingStatistics.java:175)
    at org.apache.log4j.or.DefaultRenderer.doRender(DefaultRenderer.java:37)
    at org.apache.log4j.or.RendererMap.findAndRender(RendererMap.java:80)
    at org.apache.log4j.spi.LoggingEvent.getRenderedMessage(LoggingEvent.java:368)
    at org.apache.log4j.helpers.PatternParser$BasicPatternConverter.convert(PatternParser.java:402)
    at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:65)
    at org.apache.log4j.PatternLayout.format(PatternLayout.java:506)
    at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:310)
    at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
    at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    at org.perf4j.log4j.AsyncCoalescingStatisticsAppender$1.handle(AsyncCoalescingStatisticsAppender.java:200)
    at org.perf4j.helpers.GenericAsyncCoalescingStatisticsAppender$Dispatcher.run(GenericAsyncCoalescingStatisticsAppender.java:316)
    at java.lang.Thread.run(Thread.java:745)

一月 09, 2019 11:06:14 上午 org.apache.catalina.startup.VersionLoggerListener log

多方求索,都没能对症下药,后来仔细观察发现:同一台服务器,部署了两个不同版本的tomcat(7.0版本和8.0版本),分别部署了不同的项目,但是分别执行各自的startup.bat时,控制台输出的信息显示,都是启动的7.0版本那个tomcat。而且在执行任意一个tomcat的shutdown.bat的时候,会把两个tomcat线程都杀掉。

最后得出结论:是因为同一台服务器上多个tomcat启动了同一个导致的。

查资料得:以下内容转载自https://www.cnblogs.com/linjiqin/p/5488461.html

如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题。只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了!

 

下面我们把配置的详细过程写在下面,以供参考:(此例以配置三个Tomcat为例)


1. 下载apache-tomcat-7.0.63,下载下来的文件为apache-tomcat-7.0.63.zip.


2. 解压该压缩包到D:/div/目录下。


3. 修改解压文件夹名字为:tomcat7-8080


4. 在D:/div/目录下创建该文件夹的两个副本,分别更名为:tomcat7-8081、tomcat7-8082


5. 添加环境变量:右键单击我的电脑->选择属性->选择高级->选择环境变量:添加系统变量:
CATALINA_HOME_8080,其值为:D:\div\tomcat7-8080;
CATALINA_HOME_8081,其值为:D:\div\tomcat7-8081;
CATALINA_HOME_8082,其值为:D:\div\tomcat7-8082;

 

6. 修改启动端口和关闭端口:
进入D:\div\tomcat7-8081\conf\目录,打开server.xml文件,修改下面两个地方:
(1)<Server port="8006" shutdown="SHUTDOWN">
修改这个port=”8006”,原来默认的为:8005,使得它的关闭端口和另一个关闭端口不发生冲突
(2)<Connector port="8081" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
修改port=”8081”,原来默认的为“8080”,使得它的连接端口和另一个不冲突。
(3)<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改这个port=”8010”,原来默认的为:8009,AJP 1.3 Connector定义的地方。

 

7. 修改startup.bat和catalina.bat文件内容:
(1) 打开D:\div\tomcat7-8081\bin\startup.bat文件,把其中所有CATALINA_HOME替换为CATALINA_HOME_8081。
(2) 打开D:\div\tomcat7-8081\bin\catalina.bat文件,把其中所有CATALINA_HOME替换为CATALINA_HOME_8081。

tomcat7-8082配置方法跟配置tomcat7-8081步骤一样的。

 

8.启动Tomcat,在命令行下分别进入三个不同的Tomcat安装目录下,执行startup.bat,分别启动三个Tomcat。然后在浏览器中输入:
http://localhost:8080
http://localhost:8081
http://localhost:8082

 

9. 至此,我们已经在一台服务器上配置了三个Tomcat。

尝试之,问题解决。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值