概述
今天在一个干净的linux服务器上使用tomcat部署一个web项目,本以为项目丢上去,启动tomcat就完事了。没想到一路踩坑过来的,今天把问题记录下来,希望能够对首次部署web项目的小伙伴们有所帮助。
第一坑:tomcat端口号被占用问题:
启动后就去浏览器访问8080端口,失败,查询日志8080端口被占用了,这是个纯净的linux。没有启过其他项目,按说不会如此,但报这个错了就看看哪些进程占用吧,输入命令:
# netstat -tunlp,
发现确实有个java进程占用了这个接口,我想起来刚安装tomcat时用root用户起过tomcat。然后就暴力的kill -9 3071,把那个进程杀掉了。就没报这个错了。
第二坑:openfile(null,true) call failed (permission denied)美滋滋的重启,谁曾想,还是访问不了,再次打开tomcat日志,发现启动时又报了这个错:
意思大概是tomcat在启动编译时写入一个叫logs/shop_info.2019_02_28.log的日志文件时发现没有这个文件,我去tomcat的logs文件夹去看,还真是没有这个文件,那就应该是在编译项目配置文件的时候创建这个日志文件时没有权限,这就好办了,给这个logs文件最大权限呗,
执行下 chmod 777 logs,再重启tomcat,还是报同样的错。permission denied明明就是权限问题啊,我这咋没用呢,百思不得其解。后来发现在bin目录下还有一个logs文件夹,而且里面竟然有shop_info.2019_02_28.log这个文件,很明显项目里logback.xml文件里配置的日志文件logs/shop_info.2019_02_28.log存储位置在这儿,查了下权限,文件夹是属于root的,修改下这个文件夹所有者,加上读写执行的权限,再重启,就不会包这个错了。这个坑定位到文件夹正确位置,并给予相应的权限即可。
第三坑:内存泄漏??
解决完第二个问题,长舒一口气,继续美滋滋重启,咦?咋还是不行呢?再看看日志有个:
The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but failed
to unregister it when the web application was stopped. To prevent a memory leak, the JDBC
Driver has been forcibly unregistered,惊慌的百度了一下,发现很多同学也都遇到过这个问题,但并没有太好的解决办法,问下公司的老司机,说是端口号不对,我是台电信云主机,登天翼云管理台安全组配置发现8080端口号被屏蔽了,那就最后挣扎下吧,conf文件夹中server.xml配置文件里端口号改成安全组允许访问的端口号,我改成了7892.然后去防火墙过滤掉这个端口号拦截。于是我遇到了第四坑。
第四坑:centos7 防火墙配置。我先前不知道centos7的防火墙跟centos6,不一样,
直接 vi /etc/sysconfig/iptables,
添加 -A INPUT -p tcp -m tcp --dport 7892 -j ACCEPT
:wq! 保存退出
执行 # service iptables save 保存配置,
执行 #service iptables restart 重启防火墙。
执行#service iptables status 查看启动状态,发现启动失败。
去百度了下说是centos7使用的是firewall,跟之前的不一样。但是之前的iptables,也还能用不过要先把firewall停掉。去百度了下 这个帖子最终解决了我的问题。https://blog.csdn.net/xlgen157387/article/details/52672988 关于这一点大家可以移步去看看,真的很有用。最后一次重启项目终于启动了。
最后
以上就是凶狠曲奇为你收集整理的linux系统在tomcat上部署web项目踩坑大全的全部内容,希望文章能够帮你解决linux系统在tomcat上部署web项目踩坑大全所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复