From: | Rich Cullingford <rculling(at)sysd(dot)com> |
---|---|
To: | pgsql-jdbc <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Security manager changing the jdbc Connection class? |
Date: | 2003-01-13 17:20:47 |
Message-ID: | 3E22F56F.7080904@sysd.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
All,
This bizarre behaviour occurs after I compile the jdbc jar from source
(/usr/local/java/jdk->j2sdk1.4.1, 'configure' & 'gmake' build a JDBC3
edition driver). I placed 'postgresql.jar' in /usr/local/java/lib, which
is in CLASSPATH.
The server has been set up to receive TCP/IP connections. Now I compile
and run basic.java in the 'examples' directory, and (with debug 'on') get:
[rculling(at)thriller example]$ java basic jdbc:postgresql:rculling rcu
ng debug
PostgreSQL basic test v6.3 rev 1
DriverManager.initialize: jdbc.drivers = null
JDBC DriverManager initialized
registerDriver: driver[className=org.postgresql.Driver,org.postgresq
2e08]
Connecting to Database URL = jdbc:postgresql:rculling
DriverManager.getConnection("jdbc:postgresql:rculling")
trying driver[className=org.postgresql.Driver,org.postgresql.Dri
Exception in thread "main" java.lang.NoClassDefFoundError: org/postg
AbstractJdbc2Connection
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLo
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:2
at java.net.URLClassLoader.access$100(URLClassLoader.java:54
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method
at java.net.URLClassLoader.findClass(URLClassLoader.java:186
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLo
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:2
at java.net.URLClassLoader.access$100(URLClassLoader.java:54
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method
at java.net.URLClassLoader.findClass(URLClassLoader.java:186
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at org.postgresql.Driver.connect(Driver.java:121)
at java.sql.DriverManager.getConnection(DriverManager.java:5
at java.sql.DriverManager.getConnection(DriverManager.java:1
at basic.<init>(basic.java:37)
at basic.main(basic.java:212)
The relevant source line in org.postgresql.Driver.connect says it's
attempting a Class.forName("org.postgresql.jdbc3.Jdbc3Connection"), but
by the time the error registers, the system seems to be attempting to
load "org.postgres.jdbc2.AbstractJdbc2Cnnection." The jar file has an
AbstractJdbc3Connection, but not Jdbc2. Is something funny happening in
the do.Privileged() calls by the SecurityManager?
I'm stumped. Thanks for any help.
Rich Cullingford
From | Date | Subject | |
---|---|---|---|
Next Message | Barry Lind | 2003-01-13 17:46:21 | Re: Security manager changing the jdbc Connection class? |
Previous Message | Charles H. Woloszynski | 2003-01-13 13:08:02 | Re: [PERFORM] join over 12 tables takes 3 secs to plan |