先前我误删了mysql服务,再次重新配置完mysql后,javaweb项目还是跑不起来,tomcat老报错。
项目快开始搭建前先要配置环境,但是在调试以前的项目时出现了一些bug导致项目跑不起来,由于不知道原理,最后连tomcat都打不开了。
于是我开始重新配置tomcat,此次安装版本是tomcat9.0,从官网上下载完安装包后,安装在之前指定文件夹内,接着跟着教程配置环境变量。
因为教程没写是配置用户的还是系统的环境变量,搜了一下区别,得知用户环境变量只对当前用户生效,若切换用户则会无效,反之,系统环境变量对所有用户生效。
按照需求,在这里我用的是用户环境变量,添加配置如下:
CATALINA_HOME | tomcat的安装路径(例如:C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.45) |
---|---|
CATALINA_BASE | tomcat的安装路径 |
在PATH里面添加 | %CATALINA_HOME%\lib;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar;%CATALINA_HOME%\bin |
配置完成后,打开http://localhost:8080/ 应该能访问tomcat的默认欢迎页,但是启动成功后打开网页报错 500:
1.org.apache.jasper.JasperException: Unable to compile class for JSP
2.java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
百度后发现是编译错误,原因大致都指向:
由于tomcat 和 项目 中都有 servlet-api.jar 和 jsp-api.jar,换了tomcat之后,tomcat中的jar版本及编译的jdk版本不同,导致冲突
但是我找了很久没找到冲突的包到底在哪,于是我想到可能是跟我的jdk包版本有关,看到java运行的环境是8.0版本,搜了一下,tomcat9是支持8.0版本以上的jdk的,问题就出在这了,纠结了很久,反复确认系统环境变量是否配置错误,做了各种挣扎,还是无果。最终我还是重新下了一个jdk1.8.XX,并安装,
最后成功上岸!
默认欢迎页终于打开了,于是我到eclipse里去打开,发现又出现了新的错———404。。。
一番查找后才知道,原来
eclipse将tomcat的项目发布目录(tomcat 目录中的webapp)重定向了,所以在tomcat安装目录下的webapp目录里面找不到你的项目文件。于是重新配置了tomcat的server.xml文件,把项目的发布目录改为tomcat的安装目录(/webapps)
(解决办法参考:https://blog.csdn.net/shang_bo_liang/article/details/83546915)
最后附上重新安装jdk后需要配置的环境变量,为避免不必要的错误,这里的需要配置的是系统环境变量:
CLASSPATH | .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar |
---|---|
JAVA_HOME | C:\Program Files\Java\jdk1.8.0_281; |
在PATH里面添加 | C:\Program Files\Java\jre1.8.0_281\bin;C:\Program Files\Java\jdk1.8.0_281\bin; |