<2> Class com.oneHeart.Servlets.HelloServlet is not a Servlet
具体描述:javax.servlet.ServletException: Class com.oneHeart.Servlets.HelloServlet is not a Servlet。编译的时候不出错,运行项目的时候出现的错误,创建的Servlet被提示 不是Servlet。 原因:maven集成了tomcat,我们可以查看本地tomcat 的依赖包,发现包含:servlet-api、jsp-api,而我们在maven 的pom.xml文件中添加了相同名称 servlet-api、jsp-api 的jar包(创建Servlet的时候需要), 而在项目运行的时候,则我们添加的包会和maven集成的tomcat包相冲突。 解决的办法:我们需要将pom文件中,我们添加的 servlet-api、jsp-api 包只在编译之时生效,而不在运行的时候生效,避免发生jar包冲突。我们可以使用 provided 指定jar包作用范围为编译,只在编译时候生效。
provided
1
<3>.严重: Failed to initialize end point associated with ProtocolHandler [“http-bio-8080”]
java.net.BindException: Address already in use: JVM_Bind :8080 端口被占用异常,原因:之前启动了maven项目,未关闭。而后重新启动,就会出现端口被占用异常。
<4>.org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files 问题描述:使用maven启动了Servlet之后,在浏览器访问对应的Servlet,Servlet可以正常访问,但是跳转页面会出现错误。 原因:maven集成的tomcat默认是tomcat6.0.29(如图所示),而java的jdk使用的是1.8,所以猜测这应该是tomcat与jdk版本不兼容引起的 解决措施:使用高版本的tomcat,在pom.xml文件中进行配置,配置好之后可以从Maven的Plugins执行tomcat7:run的命令。