当安装一个新的eclipse或在新的工作路径,我们需要依次做几件事,环境的配置总是费时费力,所以我想将一些常见错误整理出来,当遇到问题时能够及时的查阅。
文章目录
配置Java环境
下载Java
配置环境变量 JAVA_HOME JRE_HOME
配置Tomcat插件
首先要下载Tomcat
然后要下载tomcatplugin插件,解压到eclipse的plugins下。 安装参考[1]
[1]:http://blog.csdn.net/seuxiaoqi/article/details/6003549
有关Tomat的问题,可能遇到:
没有小猫图案
没有小猫图案,参考[2],其实并不影响使用,没有就没有呗。
[2]:http://blog.csdn.net/lemonzh/article/details/2803931
在%CATALINA_HOME%/lib下添加jar包
可以在Tomcat的lib下添加javax.servlet(学习httpServlet发现的)和相关的数据库驱动jar包
jsp中红叉报错
在tomcat安装目录的libs中加入jsp-api.jar和servlet-api.jar解决jsp中下面红叉叉的提示错误信息[3]
[3]: http://blog.csdn.net/a373503741/article/details/7494808
javax.servlet.jsp.JspException cannot be resolved to a type
javax.servlet.jsp.PageContext cannot be resolved to a type
遇到容器启动失败.通常是由具体的因素导致的,如:
端口号被占用
Web.xml配置错误
Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
编译环境
下面是我遇到的个性化的问题,tomcat 8 部署时遇到的问题。原因不太清楚,可能是少jar包,也可能是jar包冲突。
我在Tomcat8的lib目录下有javax.servlet-3.0.1.jar(注:这是我自作主张加进去的,之前学习HTTPservlet的时候需要,当然Tomcat7中也加了)。同样的项目在Tomcat7中部署运行没有问题,在Tomcat8部署时却出现了下面的问题。
java.lang.NoSuchMethodError:
javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
经过查看tomcat8的源码发现getVirtualServerName()这个方法在javax.servlet-3.0.1.jar包中的javax.servlet.ServletContext类中是没有的,而在本来的servlet-api.jar中的ServletContext是有这个方法的。可能在tomcat8中这个方法移动了。
用jdk 7 可以使用tomcat7 tomcat8
SpringMVC 部署相关
这是个部署Spring MVC时遇到问题:
Servlet.init() for servlet springmvc threw exception
···
java.lang.IllegalArgumentException
org.springframework.asm.ClassReader.<init>(Unknown Source)
把编译器从Jdk 8改为Jdk 7
这个经验告诉我,应当科学的排错:
- 首先从文件编辑层面,细细地,按照业务逻辑的顺序逐行的查看;特别在没有代码提示的"字符串内部"要一个单词一个单词的比对。这一步必须做,首要做,仔细做。通常,进行过一遍就可以找到错误了。没必要反复重复步骤1。
- 配合步骤1,将业务逻辑的实际执行类考虑进去,这个步骤中就要考虑依赖的jar包是否加入其中了。
- 步骤1、步骤2,在假设代码是可行的前提下,就只能是环境的问题了,通常高版本是兼容低版本的,但也是“通常”。
工程重新编译
eclipse不重新编译会出现下面的ClassNotFound的错误,所以需要重新编译 更改编译路径的方法
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class
还有很多后期完善
安装新的软件
Install JREs
编辑提示功能设置
Preference -> Java -> Editor -> Content Assist