From: <php...@li...> - 2006-09-22 15:37:55
|
Hi, please copy the mysql.jar and the other jars it depends on to java.ext.dirs and re-start the bridge back-end. This will solve this problem immediately. I will look at this problem. > I always get the message "java.sql.SQLException: No > suitable driver > Responsible" or class not found errors. > > The problem occurs when I try to convert the java > code > Class.forName("com.mysql.jdbc.Driver"); > and the "getConnection" into corresponding php-code. > > Please see the code snippets and the provided system > information for > details. > > I have tried several ours to solve the problem. So > any help would be > desperately appreciated... Any ideas? > > > ################## > Part of the php-Script with some comments: > > <?php > java_require('file:///usr/share/java/mysql.jar'); > // I also tried to put the jar into the same > directory than the > script without effect: > // java_require('file:///var/www/mysql.jar'); > > $conn = new Java('java.sql.Connection'); > > // The following is working without errors. So > the class must be > there, I suppose... > $mysql = new javaClass('com.mysql.jdbc.Driver'); > $mysqlinst = $mysql->newInstance(); > > // The following two code lines yield: > /* Uncaught > [o(Exception):"java.lang.Exception: Invoke > failed: > [c(Class)]->forName((String)o(String)). Cause: > java.lang.ClassNotFoundException: > com.mysql.jdbc.Driver Responsible VM: > 1.5.0_08@http://java.sun.com/" at: > #-18 > java.net.URLClassLoader$1.run(URLClassLoader.java:200) > #-17 > java.security.AccessController.doPrivileged(Native > Method) > #-16 > java.net.URLClassLoader.findClass(URLClassLoader.java:188) > #0 [internal function]: Java->__call('forName', > Array) > #1 /var/www/java.php(33): > Java->forName('com.mysql.jdbc....') > #2 {main}] thrown in <b>/var/www/java.php */ > // $javaclass = new Java('java.lang.Class'); > // $javaclass->forName('com.mysql.jdbc.Driver'); > > // The following to lines also produce a > ClassNotFoundExeption: > // $javaclass = new > Java('php.java.bridge.SimpleJavaBridgeClassLoader'); > // $javaclass->forName('com.mysql.jdbc.Driver'); > > $drivermanager = new > JavaClass('java.sql.DriverManager'); > $conn = > $drivermanager->getConnection("jdbc:mysql://localhost/mv-hett", > 'user', > 'pwd'); > [...] > > ################## > Error message of the "getConnection" line in > browser: > > Fatal error</b>: Uncaught > [o(Exception):"java.lang.Exception: > Invoke failed: > [c(DriverManager)]->getConnection((String)o(String), > > (String)o(String), (String)o(String)). Cause: > java.sql.SQLException: No > suitable driver Responsible VM: > 1.5.0_08@http://java.sun.com/" at: > #-11 > java.sql.DriverManager.getConnection(DriverManager.java:545) > #-10 > java.sql.DriverManager.getConnection(DriverManager.java:171) > #-9 > sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > #0 [internal function]: > Java->__call('getConnection', Array) > #1 /var/www/java.php(42): > JavaClass->getConnection('jdbc:mysql://lo...', > 'user', 'pwd') > #2 {main}] > thrown in <b>/var/www/java.php</b> > > > ################## > Standalone Java-Code that does the same works > without problems: > > import java.sql.Connection; > import java.sql.DriverManager; > import java.sql.SQLException; > > public class mv { > public static void main(String[] args) throws > ClassNotFoundException, > SQLException { > Connection conn; > > Class.forName("com.mysql.jdbc.Driver"); > conn = > DriverManager.getConnection("jdbc:mysql://localhost/mv-hett", > "user", > "pwd"); > [...] > > --- > > It is compiled using: > declare mysqllib=/usr/share/java/mysql.jar > javac -classpath $CLASSPATH:$mysqllib:. > projects/test/mv.java > > > ################## > test.php - Output: > > java.runtime.name -> Java(TM) 2 Runtime Environment, > Standard Edition > sun.boot.library.path -> > /usr/lib/j2sdk1.5-sun/jre/lib/i386 > java.vm.version -> 1.5.0_08-b03 > java.vm.vendor -> Sun Microsystems Inc. > java.vendor.url -> http://java.sun.com/ > path.separator -> : > java.vm.name -> Java HotSpot(TM) Client VM > file.encoding.pkg -> sun.io > user.country -> US > sun.os.patch.level -> unknown > java.vm.specification.name -> Java Virtual Machine > Specification > user.dir -> / > java.runtime.version -> 1.5.0_08-b03 > java.awt.graphicsenv -> > sun.awt.X11GraphicsEnvironment > java.endorsed.dirs -> > /usr/lib/j2sdk1.5-sun/jre/lib/endorsed > os.arch -> i386 > java.io.tmpdir -> /tmp > line.separator -> > java.vm.specification.vendor -> Sun Microsystems > Inc. > os.name -> Linux > sun.jnu.encoding -> ANSI_X3.4-1968 > java.library.path -> > /usr/lib/j2sdk1.5-sun/jre/lib/i386/client:/usr/lib/j2sdk1.5-sun/jre/lib/i386:/usr/lib/j2sdk1.5-sun/jre/../lib/i386 > java.specification.name -> Java Platform API > Specification > java.class.version -> 49.0 > sun.management.compiler -> HotSpot Client Compiler > os.version -> 2.6.16-2-vserver-686 > user.home -> /root > user.timezone -> Zulu > jdbc.drivers -> com.mysql.jdbc.Driver > java.awt.printerjob -> sun.print.PSPrinterJob > file.encoding -> ANSI_X3.4-1968 > java.specification.version -> 1.5 > java.class.path -> > /usr/lib/php5/20051025/JavaBridge.jar > user.name -> root > java.vm.specification.version -> 1.0 > java.home -> /usr/lib/j2sdk1.5-sun/jre > sun.arch.data.model -> 32 > user.language -> en > java.specification.vendor -> Sun Microsystems Inc. > java.vm.info -> mixed mode, sharing > java.version -> 1.5.0_08 > java.ext.dirs -> > /usr/lib/j2sdk1.5-sun/jre/lib/ext:/usr/share/java/ext:/usr/java/packages/lib/ext > sun.boot.class.path -> > /usr/lib/j2sdk1.5-sun/jre/lib/rt.jar:/usr/lib/j2sdk1.5-sun/jre/lib/i18n.jar:/usr/lib/j2sdk1.5-sun/jre/lib/sunrsasign.jar:/usr/lib/j2sdk1.5-sun/jre/lib/jsse.jar:/usr/lib/j2sdk1.5-sun/jre/lib/jce.jar:/usr/lib/j2sdk1.5-sun/jre/lib/charsets.jar:/usr/lib/j2sdk1.5-sun/jre/classes > java.vendor -> Sun Microsystems Inc. > file.separator -> / > java.vendor.url.bug -> > http://java.sun.com/cgi-bin/bugreport.cgi > sun.io.unicode.encoding -> UnicodeLittle > sun.cpu.endian -> little > === message truncated === ___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de |