问题:
项目在本地Windows下运行正常,而将项目打包成war部署到Linux环境下的tomcat时,在启动tomcat的时候出现了如下图所示的错误:
解决过程
tomcat启动就卡在了这个位置怎么都无法进行下去了。于是乎在网上百度了一阵。基本方法如下:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}";
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。
以上三种参照:http://blog.csdn.net/yangsen251024/article/details/21952613
第四种:参照:http://blog.csdn.net/yasi_xi/article/details/49642661关于这个的处理
第五种:就是关闭tomcat的tld扫描功能,参照:http://jingyan.baidu.com/article/20b68a8855e71a796dec627b.html(自己想着处理的)
通过上面五种方式处理过后还是报同样的错误,就开始尝试替换tomcat版本。也尝试更换tomcat的默认目录,也考虑过项目在打包成war之前项目是不是有断点。这些排除之后还是一样报错。到这里几乎已经快放弃了。但是后来想了想有没有可能是数据库的问题呢?(经过验证就是数据库的问题)
考虑可能是数据库的问题是因为在修改项目的applicationContext.xml之前报了一个如下的错误:
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received
最后问题解决
其实就是一个数据库的映射端口的问题,Linux服务器将3306的端口对外映射成了13306,而我的数据库连接URL中还是用的这个13306这个端口。项目部署到Linux服务器后这个端口应该改成3306即可。