java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver

When I run java servlet test_ora.java with IE6.0 I get the following error page:

HTTP Status 500 -

--

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)

at java.lang.Thread.run(Thread.java:536)

root cause

java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver

at test_ora.doGet(test_ora.java:21)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)

at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)

at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)

at java.lang.Thread.run(Thread.java:536)

--

Java Web Services Developer Pack/1.0-fcs

I thought it is about JDBC configuration. But when I run JdbcCheckup.java everything works fine. Can anybody help me, please?

test_ora.java looks like this:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

public class test_ora extends HttpServlet {

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

String str_dok_numer, str_f_inkraft;

int int_dok_wal_id;

Connection conn=null;

Statement s = null;

response.setContentType("text/html;charset=iso-8859-2");

PrintWriter out = response.getWriter();

try {

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

conn = DriverManager.getConnection(

"jdbc:oracle:thin:@192.168.15.2:1521:DB2","janusz","kimono");

s = conn.createStatement();

} catch (SQLException e) {

out.println("Blad polaczenia z baza danych: " + e.getMessage());

}

try {

ResultSet r =s.executeQuery("select dok_numer, f_inkraft, dok_wal_id from gndlf_umowy_inkraft");

out.println("DOK_NUMER\tF_INKRAFT\tDOK_WAL_ID");

while(r.next()){

out.println (r.getString (1) +"\t" + r.getString (2) + "\t" +r.getString (3));

}

conn.close();

} catch (Exception e) {

out.println("Wystapil problem z wyslaniem SQL do bazy danych: " + e.getMessage());

}

finally {

try { conn.close(); }

catch(SQLException e) {}

}

}

}

and here is code for JdbcCheckup.java (I get it from Internet and made some modifications):

/*

* This sample can be used to check the JDBC installation.

* Just run it and provide the connect information. It will select

* "Hello World" from the database.

*/

// You need to import the java.sql package to use JDBC

import java.sql.*;

// We import java.io to be able to read from the command line

import java.io.*;

class JdbcCheckup {

public static void main(String args[])

throws SQLException, IOException

{

// Load the Oracle JDBC driver

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

// Prompt the user for connect information

System.out.println("Please enter information to test connection to the database");

String user;

String password;

String database;

user = readEntry("user: ");

int slash_index = user.indexOf('/');

if (slash_index != -1)

{

password = user.substring(slash_index + 1);

user = user.substring(0, slash_index);

}

else

password = readEntry("password: ");

database = readEntry("database(a TNSNAME entry): ");

System.out.print("Connecting to the database...");

System.out.flush();

System.out.println("Connecting...");

//Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@" + database, user, password);

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.15.2:1521:" + database, user, password);

System.out.println("connected!!!");

// Create a statement

Statement stmt = conn.createStatement();

// Do the SQL "Hello World" thing

ResultSet rset = stmt.executeQuery("select 'Hello World' from dual");

while (rset.next())

System.out.println(rset.getString(1));

// close the result set, the statement and connect

rset.close();

stmt.close();

conn.close();

System.out.println("Your JDBC installation is correct.");

}

// Utility function to read a line from standard input

static String readEntry(String prompt)

{

try

{

StringBuffer buffer = new StringBuffer();

System.out.print(prompt);

System.out.flush();

int c = System.in.read();

while (c != '\n' && c != -1)

{

buffer.append((char)c);

c = System.in.read();

}

return buffer.toString().trim();

}

catch(IOException e) {

return "";

}

}

}

I use Java Web Service Developer Pack 1.0 on Win98 SE, database Oracle 8.1.7 is installed on dedicated IBM server (AIX 4.x).

I put these lines in autoexec.bat:

set PATH=C:\Perl\bin\;"C:\j2sdk1.4.0\bin";%PATH%

set CLASSPATH=.;C:\j2sdk1.4.0\lib\tools.jar;C:\j2sdk1.4.0\lib\classes12.zip;C:\j2sdk1.4.0\lib\classes111.zip;%CLASSPATH%

set CLASSPATH=C:\jwsdp_1_0\common\lib\servlet.jar;C:\jwsdp_1_0\common\lib\jasper-compiler.jar;C:\jwsdp_1_0\common\lib\jasper-runtime.jar;%CLASSPATH%

set JAVA_HOME=C:\j2sdk1.4.0

[11214 byte] By [beores] at [2007-9-27 17:35:28]
# 1
use classes12.jar instead of classes12.zip
bdtjdc at 2007-7-6 12:50:11 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 2

I have the same problem. I created a JSP page that uses a class to retrieve database information. I added a main method to the class so I would be able to test it. When I test the class using the main method the method returns all the information from the database. When I try it using Tomcat, I get the following error:java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver

Does anyone have an idea of what is going on?

My CLASSPATH configuration is the same.

globoblanco at 2007-7-6 12:50:11 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...
# 3
Never mind this, I found the solution.
globoblanco at 2007-7-6 12:50:11 > top of Java-index,Enterprise & Remote Computing,Web Tier APIs...