在平常学习中经常会从网上下载一些案例,然后自己运行学习。刚初学的小白要跑他人的项目可能也会遇到很多困难,这里就总结了一下一些需要注意的地方。
1、代码爆红
这个是导入项目后会遇到的第一个问题,很多小白看到一大片红直接就慌了,以为源码有问题,实际上只需要将所需依赖(即jar包)添加到编译环境中就可以了。(如果是maven项目就没有jar,另外的处理方式)
1.1、选中源码中的所有依赖包,一般而言依赖包会放在webinf中的lib下,国际惯例,当然也看项目作者的喜好。
1.2、右键添加依赖到编译环境,这样是不是代码瞬间不包红了呢。
ps:如果在Eclipse中缺省servlet-api.jar包,由于servlet-api.jar以及jsp-api.jar这两个jar包含在Apache Tomcat中,所以提示这两个包缺省而出现错误的情况下,执行Build Path→Configure Build path→Libraries→Add Library→server Runtime就可以了。
2、乱码问题
由于项目的编码问题,一般有utf8或者gbk,会导致项目移植后出现乱码的问题。
2.1、点击window->preferences
2.2、在general下找到workspace修改编码方式
修改完后项目会自动刷新一下,之后就ok了。
3、404未找到的问题
-----------关于404的问题算是web项目中最为常见的问题了,如果java源码中有爆红的地方(部分xml爆红是编译器检测的问题爆红不影响),容器肯定是无法启动的。导致404的原因有很多,这里仅讨论移植他人项目时需要注意的地方,即编译器及运行容器的配置。
-----------如图为一个正确配置完后web项目的结构,这里说一个小技巧,在双击"Deployment Descriptor"后,会自动定位到配置的web.xml,如果你的项目没有这项或者没有定位到正确的web.xml,那么你的运行容器配置就是不对的。
以下是解决的方案:
1、右键项目, 选择 Properties
2、选择 Project Facets
3、首先, 确保 Java 那个选项被选中, 然后如果Dynamic Web Module没有被选中, 则选中它, 此时会显示一个Furter configuration availabe(如果没有这个, 那就选中, 点apply, 然后再取消, 再apply, 再点中就有了)
4、点了Dynamic web module的 Further configuration availabe之后, 需要将 Content Directory填写为 src/main/webapp(这个需要根据项目的实际情况填写例如在第一个Ten项目就是填写WebContent,其实这个就是web的上下文的相对路径)
5、Apply and close,然后在双击"Deployment Descriptor",看看是否会自动定位到配置的web.xml。正常的话就可以 run as tomcat了
如果这个配置有问题的话tomcat启动会读取不正确的web.xml,自然就会404了。