db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <rick.hille...@oracle.com>
Subject Re: Can't Load Embedded Driver
Date Tue, 09 Aug 2011 13:36:02 GMT
Hi Roy,

What is the full command line which you use to run your application?

Thanks,
-Rick

On 8/8/11 3:06 PM, Roy.Minet@comcast.net wrote:
> 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