eclipse+maven+"java.lang.ClassNotFoundException: com.mysql.java.Driver"异常 引发的爬坑记

昨天没事看了一个关于maven的讲解视频,当时觉得不是特别难 所以也就没怎么在意,今天没事按照昨天的视频随便写了一些内容,谁知遇到的bug解决了一整天才弄好,一共试了四次,找了n多方法!尼玛,现在除了想把这个记录写来之外,就是想对着天空大骂一番!

为了增加记忆 还是从最基础开始吧:

使用的工具:Version: Oxygen.3a Release (4.7.3a)

用到的技术:maven 3.5.0   +  jdk 1.8 +Tomcat 8.0

案例非常基础,分包很简单 目的就是为了练习maven的使用

废话少说,还是从maven在ecalipse中配置开始吧!

省略部分:下载maven(直接官网),配置settings文件中的镜像《mirror》节点 使用的阿里云的库,这一步很简单 百度里面特别多,直接复制到里面就可以了 暂且不表!

首先打开eclipse :

1,配置编码格式:windows>>>  preferences >>>>general>>>>如图:

2,安装jre windows>>>  preferences 下图:

3,配置jdk版本(跟自己安装的版本保持一致) windows>>>  preferences 下图:

4,配置maven windows>>>  preferences 下图:

5.配置maven 的settings文件 和本地jar存放库 ,如果不配置 则默认是在c盘下面, windows>>>  preferences 下图:

6.配置jsp通用编码 windows >>>> preferences 如下图:

7.基本配置完毕 开始创建一个maven项目:见下图

file >>> new >>> maven project >>》》 next:

8.填写对应的 groupid: com.gaozhuan     artifact id: mavendemo >>> finiish

右击项目 》》》》properties 如图:

9.右击项目 》》》 properties 配置对应的版本,java 动态web 和runtime envirement服务器如图:(此步骤配置完成后,项目上面的红的的错误就会消失)

10。右击项目 》》》》buildpath  >>>configbuildpath >>设置包结构:如图所示:

 

 

 

11 配置 pom.xml文件保存:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gaozhuan</groupId>
  <artifactId>myDemo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>myDemo Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
  </dependencies>
  <build>
    <finalName>myDemo</finalName>
  </build>
</project>
 

12.创建BaseDao.class:

package com.test.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

public class BaseDao {
    
    
    public static Connection getConnection() throws Exception {
        
        Class.forName("com.mysql.jdbc.Driver");
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "root");
    }

    public static void closeConnection(Connection con, PreparedStatement ps, ResultSet rs) {

        try {
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (con != null &&!con.isClosed()) {
                con.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();

        }

    }
    
    public static Result runSelect(String sql) throws Exception {
        Connection conn = getConnection();
        PreparedStatement ps = conn.prepareStatement(sql);
        ResultSet rs = ps.executeQuery();
        Result result = ResultSupport.toResult(rs);
        closeConnection(conn, ps, rs);
        return result;
    }
}
 

13.  new一个servlet.class:

web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>mavendemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>MyServlet</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.test.servlet.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
  </servlet-mapping>
</web-app>

 

 

14.创建一个index.jsp文件:

15.配置Tomcat:

 

16.部署项目 启动服务:

 

 

17:在浏览器打开:localhost:8080/myDemo :

 18:在浏览器再打开打开:localhost:8080/myDemo/MyServlet :

此时看到没有报任何错: 但是在之前都遇到找不到类的错误: "java.lang.ClassNotFoundException: com.mysql.java.Driver”

 

解决办法如下:

1.查看Class.forName("com.mysql.jdbc.Driver");是否写错,我的之前把jdbc写成了java 非常坑爹

2.右击项目:把mysql-connector  jar包导入如图:

运行结果: 

3.把mysql-connector  jar包直接放到MEB-INF/lib中 再进行buildpath 》》 add build path

4.如果上面方法还不行就直接把mysql-connector  jar包放到Tomcat里面的lib文件夹下面;如果还不行的话,只能另请高明了,本人水平有限!

二、还有个错误比较操蛋:关于jstl 的错误“The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application] with root cause”,后来的解决办法就是:

错误内容:十一月 27, 2018 5:49:37 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [jsp] in context with path [/mavendemo] threw exception [The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application] with root cause
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:277)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:250)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:125)
    at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:421)
    at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:479)
    at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1435)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)

第一个办法:把jstl-1.2 jar包直接放大Tomcat下面的lib中 直接ok!

第二种办法:把jstl-1.2 jar包直接放到MEB-INF/lib中 再进行buildpath 》》 add build path(使用该方法效果如下:)

运行结果: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值