2010-06-25 4 views
0

Я могу подключиться к Oracle 10g (используя драйвер ojdbc14.jar) с java. Но когда я использую тот же код в сервлете или файле с расширением .jsp, я получаю исключение класса, не найденное. Я не могу понять, почему это происходит. У нас есть разные строки подключения для JDBC в java и jsp? Это то, что я использую для подключения к оракулу iwith как, Java и JSP:Создание соединения JDBC с Oracle 10g с помощью jsp

Class.forName("oracle.jdbc.OracleDriver"); 
String url = "jdbc:oracle:thin:@localhost:1521:xe"; 
//Xe being the database name 
String usr = "username"; 
String pwd = "pwd"; 

отлично работает с Java, но дает ошибку с JSP.

+0

Вы забыли рассказать об ошибке. Есть миллион видов ошибок, каждый из которых говорит по-своему о причине проблемы. Не сообщая ничего об ошибке, причина будет недостижима и проблема будет решена. – BalusC

+0

Когда я использую oracle.jdbc.OracleDriver, он дает мне класс не найденное исключение. – Logan

+0

Я знаю, что сообщение довольно старое, но все еще думало написать ошибку, которую я вижу в вашем коде. Вместо этого вы можете использовать oracle.jdbc.driver.OracleDriver и попробовать. – somnathchakrabarti

ответ

1

Не должно быть никакой реальной разницы между этими двумя. Является ли jar драйвера в вашем WEB-INF/lib/подкаталоге? Исключительное исключение класса обычно означает, что ваша банка не найдена в пути к классам.

+0

Диск-драйвер включен в путь класса. Если я создаю файл java в одном проекте, он работает нормально. Проблема только в jsp. – Logan

+0

Какой сервер вы используете? И какой путь в папке сервера вы разместили ojdbc14.jar? – JoseK

+0

@Logan - это не то, что он вам просил. Является ли JAR в WEB-INF/lib? Если вы используете систему CLASSPATH, вам нужно знать, что сервер приложений игнорирует ее. – duffymo

2

Если вы используете переменную среды CLASSPATH, ваш сервер приложений игнорирует ее. Вероятно, поэтому он «работает» с Java, но не с JSP.

Я бы посоветовал вам не полагаться на CLASSPATH таким образом. Узнайте, как правильно настроить его для каждой ситуации.

Я бы посоветовал не вводить код сценария в JSP. Вскоре это станет кошмаром для обслуживания.

Если вы должны поместить вызовы базы данных в JSP, узнайте, как использовать JSTL и его теги <sql>.

0
<%@page import="java.sql.*"%> 
<%@page import="oracle.jdbc.driver.*" %> 
<%@page import="oracle.sql.*;" %> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <form id="form1" name="form1" method="get" action="but1.jsp"> 
<label> 
    Sr No:<input type="text" name="txt" /></br> 
    Name: <input type="text" name="txt1" /> 
</label> 
<p>&nbsp;</p> 
<p> 
    <input type="submit" name="but1" id="but1" value="Submit"> 


    </input> 
    <% String s=request.getParameter("txt"); 
    System.out.print(s); 

    String s1=request.getParameter("txt1"); 


Connection con; 

Statement st; 

ResultSet rs; 

try{ 
     System.out.println("hi"); 
    Class.forName("oracle.jdbc.OracleDriver"); 
     System.out.println("1"); 
     con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","oracle-uname","oracle-password"); 
     System.out.println("2"); 
    st=con.createStatement(); 
     System.out.println("3"); 
    String query="insert into table1(srno, name) values ("+s+",'"+s1+"')"; 
     System.out.println("4"); 
     int rRs=st.executeUpdate(query); 
     System.out.println("5"); 
     String q="Select * from table1 where srno="+s+""; 
     System.out.println("cats"); 
    rs=st.executeQuery(q); 
     System.out.println("catty"); 
     while(rs.next()) 
     { 
      System.out.println("6"); 
    out.println("number is: "+rs.getString(1));%> 
      </br> 
      <%out.print("name is: "+rs.getString(2));   
     } 
    } 

catch(Exception ee) 

{ 
    System.out.println(ee.getMessage()); 
} 
%> 
</body> 
</html> 

"JDBC: оракул: тонкий: @localhost: 1521: XE" = путь

установить путь .. услуги> Базы данных> Драйверы> оракула тонкий> подключение с помощью> добавить баночку ojdbc6.jar > следующая> JDBC URL (в нижней части)> установите uname в систему и пароль для оракула пароля> Проверка соединения

JDBC URL формирует путь, т.е. "оракул: JDBC: тонкий: @localhost: 1521: XE"

все лучшее

+0

Итак, какой смысл в вашем ответе? Я не понимаю, что вы имеете в виду конкретно – emecas

4

Я нашел решение этой проблемы ...

Это очень просто ... я был бы определен для базы данных оракула и сервера apache tomcat.

загрузить ojdbc6.jar от оракула или любого источника

места его в коте/Lib/(независимо от того, если вы используете XAMPP или любой усилитель сверток, он есть) перезапуск сервера его необходимость, в противном случае вам будет интересно только lolz.

попробуйте этот код оно работает .. !!

<%@ page import="java.sql.*" %> 

<HTML> 
<HEAD> 
<TITLE>Simple JSP to Oracle connection Example</TITLE> 
</HEAD> 
<BODY> 
<% 
    Connection conn = null; 
    try 
    { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger"); 
     out.println("connected....!!"); 

    } 

    catch(Exception e) 
    { 
     out.println("Exception : " + e.getMessage() + ""); 
    } 


%> 
</BODY> 
</HTML> 
Смежные вопросы