SchemaTool() throws ClassNotFoundException: oracle.jdbc.driver.OracleDriver

KODO 2.5.3
I am trying to use the SchemaTool java class for schema manipulations. When
I try to construct a SchemaTool object I get the following exception:
com.solarmetric.kodo.runtime.FatalUserException:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
NestedThrowables:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
I am passing an instance of MultiLoaderClassResolver (constructed using a
custom URLClassLoader) as the ClassResolver argument to the SchemaTool
constructor. The orcale jar "classes12.jar" is one of the URLs in the
URLClassResolver. Before constructing a SchemaTool object, a call to
canResolveClass("oracle.jdbc.driver.OracleDriver") on the class resolver
returns true. So why is SchemaTool not able to find this class?
Thanks
Vijay

Marc,
It might well be problems with my custom class loader (which are a pain to
debug indeed) or my lack of understanding of some of your schema tool
classes, but the basic problem I encountered (before getting to the Logger
issue) is as follows:
I have an instance of MultiLoaderClassResolver constructed using my custom
class loader.
A call to resolveClass("orcale.jdbc.driver.OrcaleDriver") on this instance
returns the correct Class (does not throw a ClassNotFound exception).
The same MultiLoaderClassResolver instance is passed as an argument to
SchemaTool(). SchemaTool.refresh() throws an exception:
ClassNotFound: orcale.jdbc.driver.OrcaleDriver
So it seems to me that somewhere in the SchemaTool code you are trying to
resolve orcale.jdbc.driver.OrcaleDriver using something other than the
instance of MultiLoaderClassResolver that I passed in. From the stack trace
in my earlier message, it seems like that is happening in:
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.createPKColumns(ClassM
apping.java:1584)where an instance of ConfigurationConnector is constructed. BTW, this is how
I construct and pass a ConfigurationConnector to SchemaTool:
JDBCConfiguration conf = new JDBCSimpleConfiguration(someProps);
ClassResolver resolver = new MultiLoaderClassResolver(myCustomClassLoader);
Connector connector = new ConfigurationConnector(conf, resolver, false);
SchemaTool sTool = new SchemaTool(conf, resolver, connector);
Vijay
"Marc Prud'hommeaux" <[email protected]> wrote in message
news:[email protected]...
Vijay-
Custom ClassLoader problems are often very hairy to debug. The first
error message you are receiving indicates a problem:
org.apache.commons.logging.LogConfigurationException: Class
org.apache.commons.logging.impl.Log4JLogger does not implement LogThis indicates to me that the
"org.apache.commons.logging.impl.Log4JLogger" and
"org.apache.commons.logging.Log" classes are being loaded in different
ClassLoaders, which is generally a bad thing. Is your URLClassLoader
deferring to the parent ClassLoader?
I think that the first step is to identify why the class loaders are
different for these two classes (which should be easy to do with some
printlns in a test program that uses your URLClassLoader).
Bear in mind that this isn't technicall a Kodo issue, but a general
ClassLoader issue. However, we are happy to try to provide hints and
guidance about how to isolate the source of the problem.
In article <[email protected]>, Vijay Ganesan wrote:
After trying out some combinations, the stack trace at the bottom of
this
message gives a better clue of what my problem is:
Looks like a new ConfigurationConnector is created in ClassMapping.javathat
ignores my class resolver (based on my custom class loader) that Icreated
as follows:
JDBCConfiguration conf = new JDBCSimpleConfiguration(someProps);
ClassResolver resolver = newMultiLoaderClassResolver(myCustomClassLoader);
>>
Connector connector = new ConfigurationConnector(conf, resolver, false);
SchemaTool sTool = new SchemaTool(conf, resolver, connector);
Adding the following line before the schema related code solves theproblem:
Thread.currentThread().setContextClassLoader(myCustomClassLoader);
However, that causes another error which, from a brief look at
LogFactoryImpl, seems surely related to custom class loaders. Don't knowhow
to get past this one:
org.apache.commons.logging.LogConfigurationException:
org.apache.commons.logging.LogConfigurationException:
org.apache.commons.logging.LogConfigurationException: Class
org.apache.commons.logging.impl.Log4JLogger does not implement Log
at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.ja
va:532)
at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.ja
va:272)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
at
com.solarmetric.kodo.impl.jdbc.runtime.ConfigurationConnector.createConnecti
onFactory(ConfigurationConnector.java:140)
--------Stack trace------------
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at
com.solarmetric.util.classes.LoaderClassResolver.resolveClass(LoaderClassRes
olver.java:34)
at
com.solarmetric.kodo.impl.jdbc.runtime.ConfigurationConnector.createConnecti
onFactory(ConfigurationConnector.java:113)
at
com.solarmetric.kodo.impl.jdbc.runtime.ConfigurationConnector.<init>(Configu
rationConnector.java:67)
at
com.solarmetric.kodo.impl.jdbc.runtime.ConfigurationConnector.<init>(Configu
rationConnector.java:59)
at
com.solarmetric.kodo.impl.jdbc.runtime.ConfigurationConnector.<init>(Configu
rationConnector.java:39)
at
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.createPKColumns(ClassM
apping.java:1584)
at
com.solarmetric.kodo.impl.jdbc.ormapping.ClassMapping.install(ClassMapping.j
ava:1416)
at
com.solarmetric.kodo.impl.jdbc.ormapping.Mapping.createMapping(Mapping.java:
169)
at
com.solarmetric.kodo.impl.jdbc.ormapping.Mapping.createMappings(Mapping.java
:116)
at
com.solarmetric.kodo.impl.jdbc.ormapping.Mapping.createMappings(Mapping.java
:86)
at
com.solarmetric.kodo.impl.jdbc.schema.SchemaTool.createMappings(SchemaTool.j
ava:831)
at
com.solarmetric.kodo.impl.jdbc.schema.SchemaTool.refresh(SchemaTool.java:333
at
com.solarmetric.kodo.impl.jdbc.schema.SchemaTool.refresh(SchemaTool.java:321
at
com.solarmetric.kodo.impl.jdbc.schema.SchemaTool.refresh(SchemaTool.java:311
"Stephen Kim" <[email protected]> wrote in message
news:[email protected]...
My guess is that your custom classloader is preventing instanceof. Can
you try using the system classloader or see if java.sql.Driver is
assignable from oracle.jdbc.dirver.OracleDriver?
Vijay Ganesan wrote:
KODO 2.5.3
I am trying to use the SchemaTool java class for schema
manipulations.
When
I try to construct a SchemaTool object I get the following exception:
com.solarmetric.kodo.runtime.FatalUserException:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
NestedThrowables:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
I am passing an instance of MultiLoaderClassResolver (constructed
using
a
custom URLClassLoader) as the ClassResolver argument to the
SchemaTool
constructor. The orcale jar "classes12.jar" is one of the URLs in the
URLClassResolver. Before constructing a SchemaTool object, a call to
canResolveClass("oracle.jdbc.driver.OracleDriver") on the classresolver
returns true. So why is SchemaTool not able to find this class?
Thanks
Vijay
Steve Kim
[email protected]
SolarMetric Inc.
http://www.solarmetric.com
Marc Prud'hommeaux [email protected]
SolarMetric Inc. http://www.solarmetric.com

Similar Messages

  • Error : java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

    Hi,
    I am writing an application and am trying to open a connection to Oracle database that is on a server. I am using the following test code to check if it connects to the database.
    import java.sql.*;
    class dbAccess {
      public static void main (String args []) throws SQLException
            String DBurl = "jdbc:oracle:thin:@local:1522:DBORA";
            String user = "test";
            String pwd = "test123";
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.getConnection(DBurl, user, pwd);
    }On running the above program I keep on getting the following error:
    Error : java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    java.lang.NullPointerException
    If I open the connection using JDeveloper wizard I can see the DB. But if running the above program in the JDev, JCreator or commandline keep on getting the error. Any help is appreciated. Thanks

    How do I set the path for the Oracle Driver. ThanksI dunno. You're supposed to know where that class is (what jar it lives in). You set it up in JDeveloper in the first place, so you must have known where it is. After you know that, it's up to you to figure out how JCreator projects are set up to include jars in a project (just like JDeveloper projects do). For the command-line way, you set the classpath on the command-line arguments:
    java -cp (your classpath here, which must include the jars it needs) ...

  • Web Server 6.1 and ClassNotFoundException: oracle.jdbc.driver.OracleDriver

    I am trying to set up the Oracle jdbc on Sun ONE Web Server Enterprise Edition 6.1 but do not seem to be having any luck. It seems that OCI and thin fails.
    I have installed the Oracle client in the folder c:\oracle\ora92. I have selected the following items to install in the Oracle client: Oracle 9i Client 9.2.0.1.0, Common files, JDBC/OCI, JDBC/Thin, and Internet Directory Client. (I then downloaded ojdbc14.jar and placed it in jdbc\lib folder.)
    I am seeing the following error: ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    From the following web page:
    <code>
    <%@page language="java"
    import="java.sql.*,
    oracle.jdbc.driver.*,
    oracle.sql.*
    "%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>
    Hello World
    </title>
    </head>
    <body>
    <%
    //connections to ops2
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@wydot-ops2","username","password");
    Statement stmt = conn.createStatement();
    ResultSet rset = null;
    rset = stmt.executeQuery("SELECT AGENCY_NUMID,AGENCY_NAME FROM flightsch.state_agencies ORDER BY agency_name");
    while(rset.next())
    String ag_name = rset.getString("agency_name");
    %>
    <%= ag_name%>
    <%
    } //end of while loop
    rset.close();
    stmt.close();
    conn.close();
    %>
    </body>
    </html>
    </code>
    I have made the following entries into the Sun One Administration pages:
    Java Tab
    JVM path Settings
    Classpath suffix = c:\oracle\ora92\jdbc\lib
    Ignore Env Class Path = on
    Native Lib Path Prefix = c:\j2sdk1.4.2_02\lib
    Native Lib Path Suffix =
    JDBC Connection Pools
    Pool = jdbc-oracle-pool
    DataSource Classname = oracle.jdbc.pool.Oracle.DataSource
    URL = wydot-ops2
    User = username
    Password = password
    (Rest of items = defaults)

    oracle.jdbc.driver.OracleDriver is deprecated, you may be having an issue with that. Try oracle.jdbc.OracleDriver instead.
    Typically you don't need to registerDriver, just load the classes:
    Class.forName("oracle.jdbc.OracleDriver");
    WEB-INF/lib is the correct place to place application jar files, it is part of the automatic CLASSPATH for typical containers.

  • Re : Error java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDrive

    Hello All,
    I am writing this simple program which connects to Oracle DB ( 10.2 ). The Java version I have is 1.5.0_13 . I do have oracle client installed. When I run the below code ...I get error
    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
            at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:164)
            at OraThin.main(OraThin.java:13)The code I have is :
    import java.io.*;
    import java.sql.*;
    public class OraThin {
      public static void main(String[] args) {
        try {
    System.out.println(System.getProperty ("java.class.path") );
          Connection con=null;
          Class.forName("oracle.jdbc.driver.OracleDriver");
          con=DriverManager.getConnection(
            "jdbc:oracle:thin:@hostname:15282:ServiceName",
            "scott",
            "tiger");
          Statement s=con.createStatement();
          s.execute("SELECT SYSDATE FROM DUAL");
          s.close();
          con.close();
      } catch(Exception e){e.printStackTrace();}
    } Please suggest as to what am I missing, I am not that well versed with Java.
    Thanks in advance,
    Sam

    Hello Paul,
    Thanks for you suggestion. Based on it , I did add the exact jar file in the PATH environmental variable in XP.
    Path=C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar;C:\oraclexe\a
    pp\oracle\product\10.2.0\server\bin;C:\oracle\product\10.2.0\client_1\bin;C:\Ora
    cle\product\10.1.0\Client_1\bin;C:\Oracle\product\10.1.0\Client_1\jre\1.4.2\bin\
    client;C:\j2sdk1.4.2_06\bin;Even after adding the specific jar file *("C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar")* ..I am getting the exact same error. moreover, to verify this I also tried to import import oracle.jdbc.driver.*.....and now my code would not even complie and I get error *(c:\Program Files\Java\jdk1.5.0_13\bin\OraThin.java:3: package oracle.jdbc.driver*
    does not exist ) . I also rebooted my machine just to make sure ...that didnt work either. Also, I changed these jar to be first in the PATH varibale ..to avoid conflict with any later .jar's classes. The code is :
    import java.io.*;
    import java.sql.*;
    import oracle.jdbc.driver.*;
    public class OraThin {
      public static void main(String[] args) {
        try {
    System.out.println(System.getProperty ("java.class.path") );
          Connection con=null;
          Class.forName("oracle.jdbc.driver.OracleDriver");
          con=DriverManager.getConnection(
            "jdbc:oracle:thin:@hostname:15282:ServiceName",
            "scott",
            "tiger");
          Statement s=con.createStatement();
          s.execute("SELECT SYSDATE FROM DUAL");
          s.close();
          con.close();
      } catch(Exception e){e.printStackTrace();}
    }What am I missing here!! ?
    Thanks again,
    Sam

  • Oracle.jdbc.driver.OracleDriver

    Hi,
    i am new webservice. i had develop the one webservice example. in this example i am retrieving the data from the database and retreive it as string format(all the rows). when i am calling the webseriveclient as passing the parameter query as string , its giving the error. while i am calling the same from the main method its coming fine.
    the error is
    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:140)
         at com.hcl.test.webservice.HelloService.getAccounts(HelloService.java:36)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:388)
         at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:283)
         at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
         at java.lang.Thread.run(Thread.java:536)
    i already added the classes111.jar file in tomcat lib as well as jdk lib. still its givng the same error.....
    what can i do to solve this problem
    regards
    ram

    The class is present in the classes12.jar file. Add that to your classpath.
    cheers,
    vidyut

  • Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.

    Hi!!!
    I�m trying to execute a example program included in http://archive.coreservlets.com/, the file is FruitTest.java....this compile very well...but....when i tried to execute it i have the following error:
    Error loading driver: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    Could somebody tell me what i have to add to my classpath?...and how to know if i have to download something and in what link is it?......
    Thanks in advance...
    Mary

    Hi mary,
    Please try following code, but before that please include classes12.zip in ur classpath. This file contains the oracle thin driver.
    Connection connection = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    String url = "jdbc:oracle:thin:@dbUrl"
    connection = DriverManager.getConnection(url, "dbName", "password");
    }catch (Exception e){
    e.printStackTrace();
    good luck ...san :-)

  • Error class not found with Class.forName("oracle.jdbc.driver.OracleDriver")

    sorry Got the solution...!!!!
    Hi
    I am trying to connect to oracle database on the server, oracle client installed on working m/c, I have placed classes111.zip (from oracle 8) in jdk1.1.8demojrelibext folder and I have set the classpath to the ext folder. The code
    try
    Class.forName("oracle.jdbc.driver.OracleDriver");
    catch(Exception e)
    when I run this code , error as
    [[ java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver ]]
    Please reply what are settings I should to to load this oracle driver,
    Thanks
    Mayank
    Message was edited by:
    user560333

    I currently have this same problem. How did you solve yours see my post Cant find suitable driver.

  • JDBC Error: oracle.jdbc.driver.OracleDriver not found

    I am trying to compile and run sample jdbc file( Employee.java).
    The file compiled successfully. But when i run it i get the
    following error.
    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at Employee.main(Employee.java:17)
    I have set CLASS_PATH=$ORACLE_HOME/jdbc/lib/classes111.zip
    Any one faced this problem?. I am trying to solve this from last
    2 days. Any help is apprecidated.
    I am using RH 5.2, jdk-1.1.7_v1a(blackdown) and Oracle 8,0,5
    thx
    srini.
    null

    srini (guest) wrote:
    : I am trying to compile and run sample jdbc file(
    Employee.java).
    : The file compiled successfully. But when i run it i get the
    : following error.
    : java.lang.ClassNotFoundException:
    oracle.jdbc.driver.OracleDriver
    : at Employee.main(Employee.java:17)
    : I have set CLASS_PATH=$ORACLE_HOME/jdbc/lib/classes111.zip
    : Any one faced this problem?. I am trying to solve this from
    last
    : 2 days. Any help is apprecidated.
    : I am using RH 5.2, jdk-1.1.7_v1a(blackdown) and Oracle 8,0,5
    : thx
    : srini.
    trusth me..it is the classpath.
    i have the very same problem asyou when i started to have a look
    into oracle running on linux.
    check the classpath and path
    using the $ECHO
    LIKE
    TYPING THIS:
    echo $PATH
    or
    echo $CLASSPATH
    USING CAPITAL for path and classpath.
    good luck
    Victor Alamo
    EXA
    null

  • JDBC,Oracle - java.lang.ClassNotFoundException: oracle.jdbc.driver.Oracle

    I am using JBuilder5 which comes with jdk1.3. I have installed oracle 8.1.7 Enterprise version.
    I am using Win NT 4.0.
    I have set the PATH variable as E:\oracle\ora81\lib; and
    CLASSPATH as : E:\oracle\ora81\jdbc\lib\classes12.zip;E:\oracle\ora81\jdbc\lib\nls_charset12.zip;
    My JDBC code is
    package sample2;
    import java.sql.*;
    public class Two {
    Connection con;
    Statement st;
    public Two() {
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con = DriverManager.getConnection("jdbc:oracle:oci8:@First","scott","tiger");
    st = con.createStatement();
    ResultSet rs = st.executeQuery("Select * from Book");
    while(rs.next())
    System.out.print(rs.getInt("ID")+"\t");
    System.out.print(rs.getString("title")+"\t");
    System.out.print(rs.getString("author")+"\t");
    System.out.print(rs.getString("subject")+"\t");
    System.out.println(rs.getInt("copies")+"\t");
    st.close();
    con.close();
    catch(Exception ex)
    System.out.println("Exception : " + ex.toString());
    public static void main(String[] args) {
    Two two1 = new Two();
    I am getting this exception:
    Exception : java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    I can understand that the classpath for the driver is the problem here.
    Also, I tried to run this file without JBuilder as a independent file on a notepad. Even then this exception is thrown.
    I have set the PATH to E:\oracle\ora81\bin and also to E:\oracle\ora81\lib.
    I ran "echo %classpath%" from my command prompt and this is what i am getting.
    E:\JBuilder5\jdk1.3\lib\tools.jar;E:\JBuilder5\jdk1.3\dt.jar;E:\oracle\ora81\jdbc\lib\classes12.zip;E:
    \oracle\ora81\jdbc\lib\nls_charset12.zip;
    I searched solution for this probldem in Sun JDC Forum itself. Many of them suggested to unzip classes12.zip and create jar file and add it in the classpath. Alos, some have suggested to copy the classes12.zip in home directory and then include this path in the classpath. I tried those solutions also. But, nothing seem to work.
    Somebody help me fix this problem.
    Thanks in advance.

    Jbuilder5 uses a different means of loading dependent classes. Use menu : Tools -->Configure Libraries - Click New and setup a new named library that points to classes12.zip .
    Then include this in u'r required Libraries of your project using menu Project --> Project Properties - required Libraries tab.
    I don't thnk Jbuilder5 even refers to CLASSPATH set in Windows NT environement. Path may need to be set to include oracle/ora81/bin directory though.
    Hope this helps.

  • JDBC driver - Class oracle.jdbc.driver.OracleDriver not found.

    Greetings:
    When I tried to compile an test script (as attached below) to test the driver, I always ended up with the following error message:
    ....java:17: Class oracle.jdbc.driver.OracleDriver not found.
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Could somebody shine some light on it? I would very much appreciate it.
    By the way, I have an Oracle DBMS (8.1.7) with jre1.1.7. My Java is jdk1.2 and the driver is ocijdbc8.dll
    Wil
    *************** The test script *************
    import java.sql.*;
    class Users
    public static void main (String args [])
    throws SQLException, ClassNotFoundException
    // Load the Oracle JDBC driver
    Class.forName ("oracle.jdbc.driver.OracleDriver");
    // Connect to the database
    // You can put a database name after the @ sign in the connection URL.
    Connection conn =
    DriverManager.getConnection ("jdbc:oracle:oci8:@US10", "QM24202E", "QM24202E");
    // Create a Statement
    Statement stmt = conn.createStatement ();
    // Select ... table
    ResultSet rset = stmt.executeQuery ("select USERID from USERS");
    // Iterate through the result and print the ... names
    while (rset.next ())
    System.out.println (rset.getString (1));

    check out what thomas Fly wrote on another discussion forum about connection with JDBC, i tried it and i haven't gotten it
    to work yet but at least i don't have the "... not found" error,
    you should try it too, and i think it's good to tell you that i
    still haven't installed the oracle client on my windows Me PC.
    Hope this help you
    This may help also... I have Oracle installed on a Linux PC at 192.168.1.4 on my LAN, listening on port 1521. I can connect from another PC (Linux / Windows ME dual boot, though running Windows at the time of this experiment) using the following program:
    import java.sql.*;
    public class sqlLookup {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
    String dbUrl = "jdbc:oracle:thin:@192.168.1.4:1521:ORA8";
    String user = "thomasfly";
    String password = "maverick";
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection c = DriverManager.getConnection(dbUrl, user, password);
    Statement s = c.createStatement();
    // SQL code:
    ResultSet r = s.executeQuery("select * from members");
    while(r.next()) {
    // Capitalization doesn't matter:
    System.out.println(r.getString("Name") + ", " + r.getString("id") + ": " + r.getString("email") );
    s.close(); // Also closes ResultSet
    I downloaded classes12.zip for Oracle 8.1.7 and put it into the C:\Windows directory, and mounted C:\Windows\classes12.zip in Forte for Java (equivalent to adding it to the classpath if I were running the program from a DOS window, rather than in Forte).
    ORA8... capitalization may be important... is the name of my database, which may be found in the tnsnames.ora file in $ORACLE_HOME/resources.
    The query gets the Name, id, and email fields from the table "members" in the database.
    This is just a barebones program, and each time it's run, the Oracle listener has to be stopped and restarted before the program can be successfully run again.

  • Class Not found : oracle.jdbc.driver.OracleDriver when calling web service

    Hi,
    I have installed the Oracle Data Integrator Public Web Services on Apache Tomcat 5.5 application server with Apache Axis2
    When I try to call the web service OdiInvoke using the operation "listScenario" using only the JdbcDriver as input parameter, the response I get back from the web service call is:
    java.lang.ClassNotFoundException: Class Not found : oracle.jdbc.driver.OracleDriver
    Using the operator "getWebServiceVersion" I get a successfull response back som the connection seems fine.
    Obviously the error has to do with the driver not beeing available but where should I put the driver? Or how do I make it available? When working from Topology Manager, all connections are fine.
    Best regards
    M

    Solved it on my own by putting ojdbc14.jar in the following directory: <Apache-Tomcat install dir>/webapps/axis2/WEB-INF/lib/
    Thought I'd share in case some one else has same issue
    /M

  • 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

    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.

  • Java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriveroracle.j

    My compile works just fine: javac mail_create.java
    but when I try to run I get OracleDriver error. Not sure how to fix this. Using RedHat Linux 7.3
    [ora9ias@tautog classes]$ java mail_create
    Error: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriveroracle.j
    dbc.driver.OracleDriver
    [ora9ias@tautog classes]$ pwd
    /home/oracle/9iAS/j2ee/home/default-web-app/WEB-INF/classes
    [ora9ias@tautog classes]$
    Some of my code...
    import java.io.*;
    import java.util.*;
    import java.text.*;
    import java.sql.*;
    public class mail_create {
    public static void main(String[] arguments) {
    StringTokenizer st1;
         int cnt1, cnt2, cnt3, cnt4, ival, newal;
         String commabv, commemail, comabbrv, commca, commail;
         String comcod []=new String [99];
         String comvar []=new String [800];
         String curabr []=new String [800];
         String comail []=new String [800];
    try {
         Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    .....

    http://search.java.sun.com/search/java/index.jsp?qt=%2Boracledriver+%2Bclassnotfoundexception&nh=10&qp=&rf=1&since=&country=&language=&charset=&variant=&col=javaforums

  • Oralce 10G2 JDBC Driver - Error Loading oracle.jdbc.driver.OracleDriver

    When attemping to use the 10G2 jdbc driver the following NoClassDefFoundError is encountered:
    Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class: oracle.jdbc.driver.OracleDriver
    <<No stacktrace available>>
    Caused by: java.lang.ClassNotFoundException: oracle.security.pki.OracleWallet not found in [file:./, file:ojdbc1410g2.jar, file:/usr/share/java/libgcj-3.4.4.jar, file:./, core:/]
    <<No stacktrace available>>
    The error does not occur when reverting back to the 9 jdbc driver. Does anyone know what is causing this behavior?
    Regards,
    Paul

    Paul,
    Actually, class "oracle.jdbc.OracleDriver" extends class "oracle.jdbc.driver.OracleDriver".
    So check the JAR files in the list displayed by your error message and see if any of them contain the [missing] class, for example:
    jar tvf ojdbc1410g2.jar oracle/jdbc/driver/OracleDriver.classGood Luck,
    Avi.

  • IPlanet Web Server  gives classnot found "oracle.jdbc.driver.OracleDriver "

    I have installed iplaet web server 6 eval. copy on red hat linux 6.2 , oracle 8i 8.1.6 having default classpath with
    /usr/local/jdk1.2.2:/usr/local/jsdk.jar:/usr/local/jdk1.2.2/oracle.jar
    when we run a servlet it gives classnot found "oracle.jdbc.driver.OracleDriver "
    Any one can give me where to place oracle.jar or how to overcome from this error
    the code is
    import java.util.*;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import oracle.jdbc.driver.*;
    * This is a simple example of an HTTP Servlet. It responds to the GET
    * and HEAD methods of the HTTP protocol.
    public class Hello2 extends HttpServlet
    public void doGet (HttpServletRequest request,HttpServletResponse response) throws ServletExc
    eption, IOException
    PrintWriter out;
    String title = "12Example iPlanet JServ Servlet";
    response.setContentType("text/html");
    out = response.getWriter();
    Statement stmt=null;
    ResultSet rs=null;
    Connection con;
    out.println("<H2> iPlanet is working!!</H2>");
    try
    // String url = "jdbc:oracle:thin:@80.0.0.2:1521:sahara";
    // Class.forName("oracle.jdbc.driver.OracleDriver");
    con=DriverManager.getConnection("jdbc:oracle:thin:@(description=(address=(host=80
    .0.0.2)(protocol=tcp)(port=1521))(connect_data=(sid=star)))","zigma","zigma");
    // con = DriverManager.getConnection(url, "rahul", "rahul");
    String sQuery2="select zrsbname from zrsbmast where zrsbcode=9999";
    stmt=con.createStatement();
    rs = stmt.executeQuery(sQuery2);
    rs.next();
    /*String sQuery="{call shift20()}";
    cstmt=con.prepareCall(sQuery);
    cstmt.executeQuery(); */
    out.println("<HTML><HEAD><TITLE>");
    out.println(title);
    out.println("</TITLE></HEAD><BODY bgcolor=\"#FFFFFF\">");
    out.println("<H1>"+iCount+"</H1>");
    out.println("<H1>" + title + "</H1>");
    out.println("<H2> Congratulations, iPlanet is working!1<br>");
    out.println("</BODY></HTML>");
    out.close();
    catch(SQLException e1)
    out.println("<p> Error in ");
    out.println("<p> Errmsg="+ e1.getMessage());
    catch(Exception e)
    out.println("<p> Error in ");
    out.println("<p> Errmsg="+ e.getMessage());

    you must be having an administrative console for iplanet
    there the classpath can be set to the required location
    Open the Administrative console for it..

Maybe you are looking for