1、我在MyEclipse2013中websocket运行正常,但是把工程打成war发布到tomcat中之后,websocket的客户端和服务端却怎么都无法建立连接。报错如图所示:
2、我开奘疚豫枭始排查原因,首先考虑是不是jdk版本的问题,我就在MyEclipse中从jdk6测试到jdk8,websocket运行都正常。就想当然的把这个原因排除了,然后就被坑了好长时间。测试夸臾蓠鬏过的jdk版本如下:
3、然后又经过一通排查解决了问题:1、发war包的话,jdk必须是jdk7以上(没想明白为什么在MyEclipse中jdk6也可以,可能是MyEclipse有自己的一些配置)。2、websocket-api.jar包引的不对,我在MyEclipse中是使用引用外部jar包的方式引用的tomcat中的websocket-api.jar,并没有把jar包放到工程的lib文件夹中,打成war包之后就引用不到了。然后我就把websocket-api.jar拿到工程的lib中进行引用。因为tomcat的lib中也有一个websocket-api.jar,为了防止jar包冲突,需要修改tomcat的配置文件context.xml,修改方法如图:
4、修改好之后,打war包,启动tomcat,成功了!