如何在同一台电脑上同时运行两个Tomcat(关于Invalid character found in method name.HTTP method names must be token.错误信息)

今天在学习一个项目的时候需要用到Tomcat8,而我的Tomcat版本是7,因为Tomcat7用的久了比较习惯又不想卸载,所以打算两个一起用,在网上查了同一台电脑上可以运行两个Tomcat后,就开始部署Tomcat8.

在看了一篇前辈的经验后将Tomcat8的startup.bat文件加了JDK的安装路径和Tomcat8所在路径,又将需要修改的三个端口号修改后启动Tomcat8出现了如下所示的错误:

Invalid character found in method name.HTTP method names must be token.

如何在同一台电脑上同时运行两个Tomcat(关于Invalid character found in method name.HTTP method names must be token.错误信息)

错误说明翻译过来是这样的:

方法名称中发现无效字符。HTTP方法名称必须是令牌。

又查了下API发现:

如何在同一台电脑上同时运行两个Tomcat(关于Invalid character found in method name.HTTP method names must be token.错误信息)

但是Tomcat8的服务是已经启动的,在浏览器上输入对应地址也会出现那只猫,和正常启动没什么区别,于是就抱着试试看的态度进行了一番修改。

以上说明应该是Tomcat8启动时参数的传递发生了冲突或错误,在网上看了很多前辈的经验和帖子之后经过几番尝试修改都没有成功,此时启动Tomcat7也可以正常启动,二者已经可以同时运行,但是错误信息还是存在,让我这个轻微强迫症患者很难受。后来我转念一想,Tomcat8是我现在需要用的,如果Tomcat8上面没办法乱动,那在Tomcat7上做做手脚怎么样,于是我打开了Tomcat7的conf目录下的server.xml文件,按照网上的教程修改了三处端口号,从文件开始依次向后分别是:

<Server port="8005" shutdown="SHUTDOWN">

端口号可以随意修改,最好是有规律的数字组合,因此我改成了“1111”;

<Server port="1111" shutdown="SHUTDOWN">

 下一处是:

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>

大家很熟悉的8080,我改成了“1234”;

 <Connector port="1234" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>

 最后一处是:

  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

我改成了“2222”.

  <Connector port="2222" protocol="AJP/1.3" redirectPort="8443" />

再次同时运行Tomcat7和Tomcat8,两者都运行成功并且未出现报错信息:

如何在同一台电脑上同时运行两个Tomcat(关于Invalid character found in method name.HTTP method names must be token.错误信息)

如何在同一台电脑上同时运行两个Tomcat(关于Invalid character found in method name.HTTP method names must be token.错误信息)

 

 如果修改之后再运行Tomcat报出严重的错误信息,大多数是因为修改后的端口和其它应用程序的端口冲突,报错信息里会有类似 port "****" in use 的信息,将"****"修改后重启Tomcat就可以了。

白折腾好几个小时之后发现最基本的解决办法就是将server.xml文件里的三个端口号修改之后就会成功,Emmmmmm !

其它解决办法留做日后更新。