db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik Steen Jakobsen" <...@logodata.dk>
Subject RE: Can't Load Embedded Driver
Date Tue, 09 Aug 2011 06:38:25 GMT
the call  "jdbc:derby:EMDatabase;create=true" is not a valid call to
embedded driver. It is a call to a derby server
 
correct url should be ( as far as I know)     "jdbc:derby:<path to
database>;create=true"
 
I think that is what the docs says at least.
Erik


________________________________

From: Roy.Minet@comcast.net [mailto:Roy.Minet@comcast.net] 
Sent: 9. august 2011 00:15
To: Derby Discussion
Subject: Re: Can't Load Embedded Driver


Thanks for the suggestion, Myrna.  However, it's NOT Intellij Idea that
is having a problem; everything has been working perfectly in dev.  It's
when I build a jar and just run under Windows that the problem occurs.
I'm getting desperate, though, so I'll try  "PROGRA~1" and/or moving the
jars to somewhere else with no spaces in the path.


________________________________

From: "Myrna van Lunteren" <m.v.lunteren@gmail.com>
To: "Derby Discussion" <derby-user@db.apache.org>
Sent: Monday, August 8, 2011 5:18:17 PM
Subject: Re: Can't Load Embedded Driver

On Mon, Aug 8, 2011 at 1:53 PM,  <Roy.Minet@comcast.net> wrote:
> That bottom level plumbing has been working perfectly for two years in
dev.
> I remember thinking it was pretty cool and developer-friendly.  I had
> essentially NO trouble getting it all up and working.  I have now
added the
> code to explicitly load the driver.  It works fine in dev, but not
deployed
> in a jar (java.lang.ClassNotFoundException:
> org.apache.derby.jdbc.EmbeddedDriver).  CLASSPATH surely would be the
usual
> suspect, but echo %CLASSPATH% yields "C:\Program
> Files\Apache\db-derby-10.8.1.2-bin\lib\derby.jar;." (derby.jar really
IS in
> that location) and  java org.apache.derby.jdbc.EmbeddedDriver yields
> "Exception in thread "main" java.lang.NoSuchMethodError: main" as Rick
says
> it should.  So, WTF am I doing wrong?  In Unix, I would have
double-checked
> rwx permissions (maybe Intellij Idea is running as root), but I'm not
as
> familiar with this stuff in Windows.
>
> ________________________________
> From: "Rick Hillegas" <rick.hillegas@oracle.com>
> To: "Derby Discussion" <derby-user@db.apache.org>
> Sent: Monday, August 8, 2011 3:24:09 PM
> Subject: Re: Can't Load Embedded Driver
>
> Hi Roy,
>
> Thanks for including the code snippet. As Raymond points out, you are
> not loading the driver explicitly. This should not be necessary if you
> are using Java 6 or 7. However, driver autoloading does not happen in
> Java 5 and earlier versions of Java. What version of Java are you
using?
>
> Thanks,
> -Rick
>
> On 8/8/11 11:55 AM, Raymond Kroeker wrote:
>> Hi Roy,
>>
>> The fqcn, is the fully qualified class name of the driver.  So in
your
>> code you're using the driver manager to grab a connection; however I
>> don't see a reference to loading the driver:
>>
>>
http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html#embedded_
driver
>>
>> Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
>>
>> Raymond
>>
>> On Mon, Aug 8, 2011 at 11:47,<Roy.Minet@comcast.net>  wrote:
>>> I do not know what an "fqcn" is.  I am running the latest Derby
release,
>>> 10.8.1.2.  The code pasted in below works great in the dev
environment
>>> (IntelliJ Idea), but the same code packaged in a jar cannot find the
>>> driver
>>> with CLASSPATH set correctly.
>>>
>>>     public static Connection getConnection()
>>>     {
>>>        Connection c = null;
>>>        try
>>>        {             // The connectionURL
>>> is "jdbc:derby:EMDatabase;create=true"
>>>           c = DriverManager.getConnection(connectionURL);
>>>           c.setAutoCommit(false);
>>>        }
>>>        catch (Throwable e)
>>>        {
>>>           log(3, "Unable to connect to " + dbName + ":  " +
>>> e.getMessage());
>>>           stopDBMS();
>>>           System.exit(3);
>>>        }
>>>        return c;
>>>     }
>>>
>>>
>>>
>>> ________________________________
>>>
>>> From: "Raymond Kroeker"<raykroeker@gmail.com>
>>>
>>> To: "Derby Discussion"<derby-user@db.apache.org>
>>> Sent: Monday, August 8, 2011 10:08:11 AM
>>> Subject: Re: Can't Load Embedded Driver
>>>
>>> Can you try specifying the driver as a fqcn? If that doesn't solve
the
>>> issue
>>> please paste relevant code around how you load the driver and obtain
a
>>> connection.
>>>
>>> Raymond
>>>
>>> On Aug 8, 2011 6:55 AM,<Roy.Minet@comcast.net>  wrote:
>>>>
>>>> Rick,
>>>>
>>>>
>>>>
>>>> Thank you very much for offering your help.  Apparently my
CLASSPATH is
>>>> good.  I typed in "java org.apache.derby.jdbc.EmbeddedDriver" and
did
>>>> indeed
>>>> get exactly the expected "Exception in thread "main"
>>>> java.lang.NoSuchMethodError: main" error message.  What else could
be
>>>> causing  my problem?
>>>>
>>>>
>>>>
>>>> Roy
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ----- Original Message -----
>>>>
>>>>
>>>> From: "Rick Hillegas"<rick.hillegas@oracle.com>
>>>> To: "Derby Discussion"<derby-user@db.apache.org>
>>>> Sent: Monday, August 8, 2011 9:00:58 AM
>>>> Subject: Re: Can't Load Embedded Driver
>>>>
>>>> On 8/7/11 9:54 AM, Roy.Minet@comcast.net wrote:
>>>>> I have been happily using Derby for two years within IntelliJ
Idea,
>>>>> but have now hit a wall trying to deploy the application I
developed.
>>>>> I have tried setting the path to derby.jar on the command line
and/or
>>>>> in the CLASSPATH environment variable to no avail.  The embedded
>>>>> driver doesn't load; the error message is, "No suitable driver
found
>>>>> for jdbc:derby:EMDatabase;create=true".  I'm under Windows XP Pro.
>>>>> Any help would be appreciated.
>>>>>
>>>>> Roy Minet
>>>>>
>>>>>
>>>> Hi Roy,
>>>>
>>>> This is almost always a CLASSPATH problem. With the same CLASSPATH,
try
>>>> the following experiment:
>>>>
>>>> java org.apache.derby.jdbc.EmbeddedDriver
>>>>
>>>> If the CLASSPATH is good, you should see this error:
>>>>
>>>> Exception in thread "main" java.lang.NoSuchMethodError: main
>>>>
>>>> Hope this helps,
>>>> -Rick
>>
>>
>
Looks like it should work. Perhaps derby/intelliJ Idea/the jvm has
trouble with the space in the classpath. I think with some tools I
have to use the 8 character DOS equivalent (e.g. Progra~1 instead of
Program Files) when I refer to directory names with spaces.

So, perhaps it's worth a quick try to see if it works if you plop
derby.jar and/or your other jar somewhere else than in the Program
Files directory (and adjust the classpath too, of course).

Myrna


Mime
View raw message