当前位置:编程学习 > JAVA >>

Tomcat报错


运行页面的时候tomcat 下面报了错误

The web application [/login] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

数据库的连接都没有错,别的程序连接数据库正常 --------------------编程问答-------------------- 连接没有关闭 --------------------编程问答-------------------- 关闭了连接 --------------------编程问答-------------------- 1是jar包 没有 
2是jdbc的驱动是否写错了
另外这驱动没注册上的原因可多了、

看你是oracle的数据库
应该是class12的一个jar(12还是14来着、我还真给忘了)

按你的话:“别的程序连接数据库正常”那就可能是驱动名写错了

jar包没错的话  那就是出错在程序上了、
--------------------编程问答-------------------- 另外也有tomcat 版本的错误、因为tomcat6以后引入了新的内存管理机制导致的
tomcat版本高于6.0.26

如果你很讨厌的话,就改为6.0。18就可以了
https://confluence.atlassian.com/pages/viewpage.action?pageId=218275753 --------------------编程问答-------------------- 连接没有关闭,数据库访问结束之后要断开 --------------------编程问答-------------------- 一般是项目应用到了SSH组合会出这种问题,多半是Hibernate版本问题。 
原因是Hibernate3.2.3已经包含hibernate-annotations-3.2.1.GA.jar,错误在于我重新加入了Annotation.jar等jar文件 ,一般如果用集成开发环境,如Eclipse,MyEclipse等,他会自带有hibernate等框架的jar包,如果我们自己再加入相同的框架(但版本不同)的jar包,就容易引起冲突 

详细请参考http://blog.csdn.net/mtgongren/article/details/6763305
--------------------编程问答-------------------- login.jsp页面的内容
-------------------------------------------------------------------------------
<%@page contentType="text/html;charset=gbk" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户登入界面</title>
</head>
<body bgcolor="#CED3FE">
<center>
<h1>登陆范例</h1>
<hr>
<br>

<form name="form" action="login_conf.jsp" method="post">
<table border="1" >
<tr>
<td bgcolor="pink"><font size="5">用户名:</font></td>
<td> <input type="text" style="height:28px;width:160px;" name="uname"/></td>
</tr>
<tr>
<td bgcolor="silver"><font size="5">密  码:</font></td>
<td><input type="password" style="width:160px;height:28px;" name="upass" /></td>
</tr>
<tr>
<td></td>
<td><input type="checkbox" id="chkRemember" name="chkRemember" style="vertical-align:middle"/>
<label for="chkRemember" class="font_red"><font color="red">记住我一周</font></label></td>
</tr>

<tr>
<td>
<input type="submit" class="inputbox" value="注册">
</td>
<td>
    <input type="reset" class="inputbox" value="重置">
        
<input type="submit" class="inputbox" value="登入">
</td>
</tr>

</table>
</form>

</center>
</body>
</html>
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
login_conf.jsp的内容

<%@page contentType="text/html" import="com.lu.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<%
   //接受请求的内容
   String u = request.getParameter("uname");
   String p = request.getParameter("upass");
  
   UserBeanCl ubc = new UserBeanCl();
   
   if(ubc.checkUser(u,p))
   {
    response.sendRedirect("login_success.jsp");
   }else
   {
    response.sendRedirect("login.jsp");
   }
 %>
</body>

</html> --------------------编程问答-------------------- ConnDB.java的内容
----------------------------------------------------------------------------------
package com.lu;

import java.sql.*;;

public class ConnDB {
private Connection ct=null;
public Connection getConn()
{
try
{
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.得到连接
ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:lhb", "luhaibin", "l23456");
}catch(Exception e){
e.printStackTrace();
}
return ct;
}
}

------------------------------------------------------------------------------
------------------------------------------------------------------------------
UserBeanCl.java的内容
package com.lu;
import java.sql.*;

public class UserBeanCl {

private Connection ct=null;
private Statement sm=null;
private ResultSet rs=null;

//关闭资源的函数
public void closeDB()
{
try
{
if(rs!=null)
{
rs.close();
rs=null;
}
if(sm!=null)
{
sm.close();
sm=null;
}
if(ct!=null)
{
ct.close();
ct=null;
}

}catch(Exception e)
{
e.printStackTrace();
}
}

//验证用户是否存在
public boolean checkUser(String u,String p)
{
boolean b = false;
//到数据库中去验证用户
try
{
ct =new ConnDB().getConn();
//创建Statement对象
sm=ct.createStatement();
rs=sm.executeQuery("select u_name from lu_user where u_name='"+u+"'");
if(rs.next())
{
//说明用户存在
if(rs.getString(1).equals(p))
{
//一定合法
b = true;
}
}
}catch(Exception e)
{
e.printStackTrace();
}finally
{
//关闭资源
//调用关闭资源函数
this.closeDB();
}
return b;
}
}
--------------------编程问答-------------------- 不是没有加载什么包的问题,看看程序有没有问题吧,那个class12的jar包都是加载了的,但就是会报上面的错误,而且那个错误一下子不会出来,要过一会才会出来
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,