Tomcat中的mysql-connector奇怪行为

时间:2016-11-12 23:49:53

标签: java mysql tomcat

我正在尝试使用tomcat部署应用程序。除了我希望在从WEB-INF> lib目录中删除连接器文件(mysql-connector-java-5.1.40)后出现错误之外,其他工作正常。但是,出乎意料的是,没有它,它仍在工作。所以,我的问题是Tomcat是否将conector保存在其他地方(我在Tomcat目录中搜索并没有发现任何内容)。要启动Tomcat,我使用Tomcat的bin目录中的startup.bat。 我的mysql数据库连接的简单代码:

public void jspInit() throws JSPException{
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
            pst.con.prepareStatement("insert into employee values(?,?,?)");
        }
        catch(Exception e{
            e.printStackTrace();
        }

    }

2 个答案:

答案 0 :(得分:1)

如果你在删除MySQL驱动程序jar时让Tomcat继续运行,那么Tomcat将在JVM中加载它的Java字节码。你删除jar后重新启动了Tomcat吗?

<强>更新

寻找......

  • 一些共享类路径位置中的JDBC驱动程序jar的副本,例如 Tomcat / shared / lib
  • 您的webapp
  • 中的JDBC驱动程序jar的第二个副本(具有不同的名称)
  • 您是否在此计算机上设置了CLASSPATH环境变量?也许来自另一个项目?

答案 1 :(得分:0)

如果系统上有jmap,可以尝试jmap -histo <PID>以确保实际加载了MySQL驱动程序类。

在您的应用程序运行时,您还可以尝试使用lsof |grep ".*mysql.*jar"之类的内容来查看是否有jar,但请记住您也可以在某个地方找到源代码。 (在这种情况下只是grep或find