Eclipse检出原MyEclipse项目后 javax.servlet.http相关类都报错【我,体现着一类jar包问题的处理方法】
用Eclipse检出原来为myEclipse搭建的一个项目,检出后,所有关于httpservlet的类都报异常,说有没实现的方法?
但这个项目之前人家用MyEclipse运行都是没有问题的,
按住CTRL 点击 HttpServletRequest 类,
注意看左侧:
可以看到,当前这个类引用的是 WebRoot\WEB-INF\lib\javax.servlet-api-3.1.0.jar 这个jar,
在同事的电脑上(他的项目是正常的),同样点击这个类,发现人家引用的是 javaee.jar
解决办法,
先在Eclipse中加入javaee.jar,然后
将之前这个错误的jar从构建中移除:
等待项目重新构建,完成。
如果,通过上面的 remove步骤,不起作用(有时编辑器会有这种情况),CTRL点击进去后还是那个包,那么可以直接到项目的 WEB-INF下的lib目录中,先删除这个包,然后再重启Eclipse等待重新构建项目即可。
这时,再点击原来那个类,发现已经指向了javaee.jar包:
启发:
1、MyEclipse 中自带的
javaee.jar
和
javax.servlet-api-3.1.0.jar
中都有同名的 http相关jar包,但是,它们的类中方法略有区别,包引用错误会报错。最为头疼的是,当这种错误发生时,只看代码中的 import行是没有任何报错信息的。
2、如果项目中出现 import导入正常但是编译报错,可以通过 Ctrl+鼠标点击 相关类,查看当前代码引用的是哪个jar来排查问题。