读书人

java.lang.ClassNotFoundException: o

发布时间: 2012-08-01 17:53:40 作者: rapoo

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
login.jsp


<body>
<script language="javascript">
function validate(f){
if(!(/^\w{5,15}$/.test(f.userid.value))){
alert("用户ID必须是5~15位!") ;
f.userid.focus() ;
return false ;
}
if(!(/^\w{5,15}$/.test(f.userpass.value))){
alert("密码必须是5~15位!") ;
f.userpass.focus() ;
return false ;
}
}
</script>
<%
request.setCharacterEncoding("GBK") ;
%>
<%
List<String> info = (List<String>) request.getAttribute("info") ;
if(info != null){// 有信息返回
Iterator<String> iter = info.iterator() ;
while(iter.hasNext()){
%>
<h4><%=iter.next()%></h4>
<%
}
}
%>
<form action="LoginServlet" method="post" onSubmit="return validate(this)">
用户ID:<input type="text" name="userid"><br>
密  码:<input type="password" name="userpass"><br>
<input type="submit" value="登陆">
<input type="reset" value="重置">
</form>
</body>

web.xml

<servlet>
<servlet-name>login</servlet-name>
<servlet-class>
org.lxh.mvcdemo.servlet.LoginServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>

servlet

package org.lxh.mvcdemo.servlet;
import java.io.* ;
import java.util.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
import org.lxh.mvcdemo.factory.* ;
import org.lxh.mvcdemo.vo.* ;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
System.out.println("111111");
String path = "login.jsp" ;
String userid = req.getParameter("userid") ;
String userpass = req.getParameter("userpass") ;
List<String> info = new ArrayList<String>() ;// 收集错误
if(userid==null || "".equals(userid)){
info.add("用户id不能为空!") ;
}
if(userpass==null || "".equals(userpass)){
info.add("密码不能为空!") ;
}
if(info.size()==0){// 里面没有记录任何的错误
User user = new User() ;
user.setUserid(userid) ;
user.setPassword(userpass) ;
System.out.println("222222");
try{
if(DAOFactory.getIUserDAOInstance().findLogin(user)){
info.add("用户登陆成功,欢迎" + user.getName() + "光临!") ;
} else {
info.add("用户登陆失败,错误的用户名和密码!") ;
}
}catch(Exception e){
e.printStackTrace() ;
}
}
req.setAttribute("info",info) ;
req.getRequestDispatcher(path).forward(req,resp) ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
this.doGet(req,resp) ;
}


}

工厂类
package org.lxh.mvcdemo.factory;
import org.lxh.mvcdemo.dao.* ;
import org.lxh.mvcdemo.dao.proxy.* ;
public class DAOFactory {
public static IUserDAO getIUserDAOInstance(){
return new UserDAOProxy() ;
}
}

代理类
package org.lxh.mvcdemo.dao.proxy;
import org.lxh.mvcdemo.vo.User ;
import org.lxh.mvcdemo.dbc.* ;
import org.lxh.mvcdemo.dao.* ;
import org.lxh.mvcdemo.dao.impl.* ;
import java.sql.* ;
public class UserDAOProxy implements IUserDAO {
private DatabaseConnection dbc = null ;


private IUserDAO dao = null ;
public UserDAOProxy(){
System.out.println("333333");
try{
System.out.println("444444");
this.dbc = new DatabaseConnection() ;
}catch(Exception e){
e.printStackTrace() ;
}
this.dao = new UserDAOImpl(dbc.getConnection()) ;
System.out.println("555555");
}
public boolean findLogin(User user) throws Exception{
boolean flag = false ;
System.out.println("666666");
try{
flag = this.dao.findLogin(user) ;// 调用真实主题,完成操作
}catch(Exception e){
throw e ;
}finally{
this.dbc.close() ;
}
return flag ;
}
}


调试这样
111111
222222
333333
444444
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

不知道为什么this.dbc = new DatabaseConnection() ;实例化不了
ojdbc6.jar导进去了

[解决办法]
换orcal的jar包
[解决办法]

首先确定把CLASSPATH设好

不知道你使用的环境是什么
如果使用命令行编译的话,可以在环境变量->系统变量(s)下编辑classpath,在最后添上oracle驱动文件(应该有三个)的完整路
径,注意用;号隔开以下是我的设置,供你参考
;D:\classes12.jar;D:\nls_charset12.jar;D:\ocrs12.jar;

如果是eclipse下
1.如果是java项目,可以在项目文件夹上右键->属性,弹出eclipse属性对话框,选中左边一栏的java构建路径,再选择右边顶部的

库(L)->添加库->用户库->点击“用户库”按钮->新建->写上库的名字(可随便填写)->点击“添加JAR”按钮->

找到你的oracle驱动文件,全部选中->打开->确定->确认新建的库已经勾选,点“完成”

2.如果是web项目,只要把oracle驱动文件拷贝到项目文件夹下WebRoot\WEB-INF\lib\中就行了;

或者拷贝到Tomcat文件夹下common\lib\中也可以

[解决办法]
把Oracle的驱动包添加到构建路径下,光拷到lib下是不行的
[解决办法]
ClassNotFoundException 基本是jar包引用问题。
[解决办法]
添加相应的包
%your_project%/WEB-INFlib\classes12.jar
[解决办法]
同意三楼的看法。
[解决办法]
又是一个驱动包的问题。
找合适的驱动包,放到合适的地方。
[解决办法]
this.dbc = new DatabaseConnection() ; //

把你的 ojdbc14.jar这个jar放到你的项目的WEB-INF/lib目录中
或者把它放到%JAVA_HOME%/jre/lib/ext目录中,驱动由扩展类加载器加载 ,而你程序的class均由应用类加载器加载 ,而他的父加载器为扩展类加载器 ,如果你的应用启动时,应用类加载器加载驱动类,会先委托 父加载器加载,可以加载,则返回,如果加载不到 ,则由应用加载器加载 ,如果也加在不到,则报 ClassNotFoundException(类没有找到)。
[解决办法]
this.dbc = new DatabaseConnection() ; //

把你的 ojdbc14.jar这个jar放到你的项目的WEB-INF/lib目录中
或者把它放到%JAVA_HOME%/jre/lib/ext目录中,驱动由扩展类加载器加载 ,而你程序的class均由应用类加载器加载 ,而他的父加载器为扩展类加载器 ,如果你的应用启动时,应用类加载器加载驱动类,会先委托 父加载器加载,可以加载,则返回,如果加载不到 ,则由应用加载器加载 ,如果也加在不到,则报 ClassNotFoundException(类没有找到)。

读书人网 >Java Web开发

热点推荐