Re: No suitable driver found - Mailing list pgsql-jdbc

From John Dunlap
Subject Re: No suitable driver found
Date
Msg-id 4A6DCE4D.4010504@exceter.com
Whole thread Raw
In response to Re: No suitable driver found  ("Albe Laurenz" <laurenz.albe@wien.gv.at>)
Responses Re: No suitable driver found  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-jdbc
This is my hibernate configuration (minus my entity definitions). You'll
notice that the MySQL section has been commented out. If I uncomment the
mysql config and comment out the postgresql config, hibernate generates
the database schema perfectly.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.show_sql">false</property>
        <property name="hibernate.format_sql">false</property>
        <property name="use_sql_comments">false</property>
        <property
name="hibernate.current_session_context_class">org.hibernate.context.ThreadLocalSessionContext</property>

        <property
name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property
name="hibernate.connection.url">jdbc:postgresql://localhost:5432/mydatabase</property>
        <property name="hibernate.connection.username">myusername</property>
        <property name="hibernate.connection.password">mypasswrd</property>
        <property
name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>

        <!--
        <property
name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property
name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydatabase</property>
        <property name="hibernate.connection.username">myusername</property>
        <property name="hibernate.connection.password">mypasswrd</property>
        <property
name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        -->
    </session-factory>
</hibernate-configuration>

If I comment out the mysql confg and uncomment the postgresql config,
the schema generation fails with the following stack trace. As you can
see, I am fully qualifying the driver class as "org.postgresql.Driver"
and I can assure you that postgresql-8.3-603.jdbc4.jar is in my
classpath (I can see it in eclipse under Maven Dependencies).

11:09:45,533  INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running
hbm2ddl schema export
11:09:45,535  INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting
generated schema to database
11:09:45,538  INFO
org.hibernate.connection.DriverManagerConnectionProvider - Using
Hibernate built-in connection pool (not for production use!)
11:09:45,538  INFO
org.hibernate.connection.DriverManagerConnectionProvider - Hibernate
connection pool size: 20
11:09:45,538  INFO
org.hibernate.connection.DriverManagerConnectionProvider - autocommit
mode: false
11:09:45,540  INFO
org.hibernate.connection.DriverManagerConnectionProvider - using driver:
org.postgresql.Driver at URL: jdbc:postgresql://localhost:5432/mydatabase
11:09:45,540  INFO
org.hibernate.connection.DriverManagerConnectionProvider - connection
properties: {user=myusername, password=****}
11:09:45,555 ERROR org.hibernate.tool.hbm2ddl.SchemaExport - schema
export unsuccessful
java.sql.SQLException: No suitable driver found for
jdbc:postgresql://localhost:5432/mydatabase
   at java.sql.DriverManager.getConnection(DriverManager.java:602)
   at java.sql.DriverManager.getConnection(DriverManager.java:154)
   at
org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)

   at
org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:52)

   at
org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:252)
   at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:211)
   at
org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:112)

   at
org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:152)

   at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:579)

   at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:498)

   at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:265)

   at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:191)

   at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:149)

   at
org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
   at
org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:304)

   at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
   at
org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904)

   at
org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:304)

   at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
   at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
   at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
   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:597)
   at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)

   at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
   at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:408)

   at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:351)
   at org.codehaus.classworlds.Launcher.main(Launcher.java:31)

Like I said in my last email. I've done this with many other databases
in the past and this is the first database I've seen this error with
(although I've seen a lot of other issues).

Albe Laurenz wrote:
> John Dunlap wrote:
>
>
>> I've been looking for a solution to this error for a few days now.
>> Everything I've found says that the problem should be that I have a
>> malformed url but I've gone over it dozens of times and I don't think
>> that it's wrong (I wish it was). I'm trying to use hibernate tools to
>> generate my database schema through the JDBC driver.
>>
>> I'm getting the following stack trace,
>> java.sql.SQLException: No suitable driver found for
>> jdbc:postgresql://localhost:5432/mydatabase
>>     at java.sql.DriverManager.getConnection(DriverManager.java:602)
>>
> [...]
>
> I don't know anything about Hibernate, but this error suggests that
> the system does not know the PostgreSQL JDBC driver.
>
> There are several ways to register it:
> - Use the class org.postgresql.Driver, for example with the statement
>   Class.forName("org.postgresql.Driver");
>
> - Start the Java Virtual Machine with the flag
>   -Djdbc.drivers=org.postgresql.Driver
>
> You'll probably have to figure out how to do that in Hibernate,
> but it should work exactly as with other JDBC drivers.
>
> Yours,
> Laurenz Albe
>


pgsql-jdbc by date:

Previous
From: Clemens Eisserer
Date:
Subject: Re: Updateable ResultSet doesn't fetch sequence-generated values
Next
From: Dave Cramer
Date:
Subject: Re: No suitable driver found