2013-03-26 2 views
0

все активные люди из StackOverflow, приветствия для Холи (индийский фестиваль)ClassNotFound Исключение в JDBC Программирование с помощью Eclipse, Juno

Я создал простую программу JDBC в Eclipse, Юнона:

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


public class Connect { 
static Connection conn; 
public static void main(String[] args) { 
    try { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","elt","elt"); 
     System.out.println("Connected"); 
    } catch (ClassNotFoundException cnf) { 
     cnf.printStackTrace(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 
} 

Когда я выполнил это программа в Eclipse, Juno я получил результат:

Connected 

Но когда я создал проект Java EE, содержащий одну страницу JSP и один сер vlet, Дает ошибку. Код для моей страницы JSP является:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<form method="post" action="LoginAction"> 
    User ID : <input type="text" name="uname"><br><br> 
    Password : <input type="password" name="upass"><br><br> 
    <input type="Submit" value="submit"> 
</form> 
</body> 
</html> 

код для моего сервлета выглядит следующим образом:

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class LoginAction extends HttpServlet { 

static String u_name,u_pass; 
static Connection conn; 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    doPost(request, response); 
} 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    PrintWriter out = response.getWriter(); 
    out.println("Hello Foo !"); 
    u_name = request.getParameter("uname"); 
    u_pass = request.getParameter("upass"); 
    out.println(u_name); 
    out.println(u_pass); 

    try { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","elt","elt"); 
     out.println("Connected"); 
    } catch (ClassNotFoundException cnf) { 
     cnf.printStackTrace(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 
} 

код My 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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
<display-name>eLearning</display-name> 
<welcome-file-list> 
<welcome-file>login.jsp</welcome-file> 
</welcome-file-list> 
<servlet> 
<servlet-name>LoginAction</servlet-name> 
<servlet-class>LoginAction</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>LoginAction</servlet-name> 
<url-pattern>/LoginAction</url-pattern> 
</servlet-mapping> 
</web-app> 

И моя ошибка является:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 
at  org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at LoginAction.doPost(LoginAction.java:32) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

Перед вами начните предлагать источник ошибки, я хочу сказать вам, что я уже добавил классы12.jar, когда работает обычная java-программа. Я также добавил ojdbc14.jar . Я использую оракул 10g.

+0

Всего 1 вещь, в проекте java вам просто нужно добавить банку в buildPath, но в веб-проекте вы также должны добавить его в интернет-путь lib, вы сделали это? – OQJF

ответ

1

Просто попробуйте использовать jdk вместо jre. Используйте jre6 и tomcat6. JRE7 и TOMCAT7 не работают хорошо в моем случае, чувак. Поэтому я сделал то, что предложил. Даже сервлет также получает обновления с добавлением зависимостей.

0

classes12.jar предназначен для JDK 1.2/1.3 и ojdbc14.jar для JDK 1.4/1.5.

Если вы используете JDK 1.4 или выше, а затем удалить classes12.jar с пути класса и использовать только ojdbc14.jar

+0

Я установил только jre 1.6 в свою систему. Я еще не установил jdk. @Avinash KP – Mavrick

+0

Нет проблем, удалите classes12.jar из пути к классам и попробуйте. –

0

Привет Друг первый вам нужно установить JDK, а затем добавить classes12.jar в библиотеку

Смежные вопросы