赞
踩
环境 jdk1.8,idea 2020.4 阿里云服务器Debian tomcat-8.5.69 tomcat10.0.7
这两天在捣鼓idea spring web demo,趁着去年买的阿里云服务器还未过期,把在本地打包java为war包后放到阿里云中的tomcat自动加载启动。按照步骤先后安装jdk、配置jdk环境变量、解压tomcat、将war包上传到...../tomcat/webapps/下、启动tomcat,但是远程访问还是一直出现404。
首先先说明,在本地idea上run,本机http://127.0.0.7:80/是可行的,使用Maven package后,生成的war包通关scp远程拷贝放到阿里云服务器指定...../tomcat/webapps/下,已经确定..../tomcat/conf/server.xml中的端口是正常的,并且已经在阿里云服务器安全组中开启了对于的端口。当初以为是端口不对,还特地在java web中指定为了80端口。
其实以上的步骤,很多博客上其实都说得很清楚,步骤是一致,我这里不再赘述。下面主要列一下我尝试的解决方法。
以下两种方法阿里云tomcat版本10.0.7
1. 怀疑我的war包制作/web程序有问题。我尝试了2种写法,一个直接返回 hello;另外一个去指向加载html。在本地调试没问题,放到...../tomcat/webapps/下,并且看到war包确实被加载了,在同级别文件夹下生成了相同名字的文件夹。这个尝试没解决问题。
2. 怀疑阿里云服务器配置的端口号不对,专门指定了80端口,并且还把...../tomcat/webapps/下的文件全部删除,以为是这些影响了,但是还是没用,并且阿里云服务器我也重启过了。也还是不行。
因为是第一次接触和操作,对tomcat的理论知识有点忘了,所以在下班的时候,回去刷了一遍慕课网中有关tomcat的相关视频。重拾理论知识后,第二天就有了如下的尝试。
解决方法:
在全新的window10(无java环境)电脑上,安装jdk和tomcat,实验在本地的war包是否可以正常访问。
在window10安装后,一切就绪后,加载war包,在本地和局域网内都可以访问!可以!这说明我制作的两种war包都没问题,那么问题就定位在阿里云服务器中环境问题。
1. 先检查tomcat版本,我发现不一致,所以我重新从官网下载8.5.69解压缩到对应目录下,之前10.0.0.7的删除掉。
2. 检查jdk的版本,jdk的环境变量配置。jdk8版本一致,但是环境变量有两个地方都配置了,/etc/profile 和 ~/.bashrc,所以我把~/.bashrc下的配置给注释掉。
3. 重启启动tomcat,然后加载就可以了显示。
后面我不确定是如何好的,我又将~/.bashrc中jdk的环境变量放开,再进行访问,卡住不行。我再注释,在运行访问,还是卡住不行。
然后我重启阿里云服务器,把tomcat版本换回10.0.7,想试一试到底是什么原因导致的。更换后,还是不行。中间又重启了一遍阿里云服务器,还是不行。中间还使用shutdown.sh,报如下错,这个说明tomcat启动异常,tomcat may not be running。我使用ps,查看很多给java进程,我使用kill -9 强制退出,再startup.sh,然后再shutdown.sh,还是出现如下错误。这可以断定tomcat异常,需要重启或者重新安装,此时访问也一直卡住。
最后,重启阿里云服务器,重新启动tomcat,并且试一下shutdown,也正常如下:
此时再startup,发现又访问不了,还是tomcat进程没有完全退出吧。现在记录至此。
所以现在就是初次启动后,每次都是热加载进行调试了,毕竟现在还未真正用在项目上,将来真正用在再深入研究吧。如果大家有遇到相同问题,欢迎讨论研究~~
一个新的东西,第一次接触,可能会走弯路。千里之行始于足下。有问题,解决之。还有问题,那不能在原地打圈,就算去问经验丰富的人,他们也是需要花费一定的时间。最有效的方法,就是深入进去,学习它,相信开发出tomcat的人,不是为了让人绕弯子跳坑,而是为了让我们更好更快的上手。所以理论基础很重要,想跨域这一步,就算达到目标,那也只是浅浅的一层。所以,重视基础,方能技能在手,问题不再有哈。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。