[fcrepo-user] 3.4 install error: MySQL connector copy (Debian 6, Tomcat 6)

8 views
Skip to first unread message

West, Graeme

unread,
Aug 23, 2010, 8:10:35 AM8/23/10
to fedora-commons-users
Hello all,
First off, congrats to all those who contributed to the 3.4 release. It looks really nice so far.

I say 'looks' because although it runs perfectly with the included Tomcat, I'm having trouble getting it running with an existing Tomcat 6 installation on Debian 6. I may be overlooking something silly, but I thought I'd post anyway.

The problem is that seemingly no matter what I specify in the 'MySQL JDBC driver' part of the installer, whether it's 'included' or a custom value, it tries and fails to write the file into the Tomcat classes directory. Some examples are below.

I think it seems to be happening because Fedora expects that Tomcat stores these class files in:
> <tomcat_home>/common/lib/

whereas Debian's version (as far as I know) stores these in:
> <tomcat_home>/common/classes/


I wonder whether there's a way to change the default location that the Fedora installer tries to copy the included or specified JAR file to, so that it won't fail?

Examples:

Using 'included':
> Preparing FEDORA_HOME...
> Configuring fedora.fcfg
> Installing beSecurity
> Will not overwrite existing /var/lib/tomcat6/conf/server.xml.
> Wrote example server.xml to:
> /usr/local/fedora/install/server.xml
> WARNING: A keystore file already exists at: /var/lib/tomcat6/conf/keystore.
> WARNING: The existing keystore will not be overwritten.
> WARNING: The installer-provided keystore will not be installed, it will be copied to:
> /usr/local/fedora/install/keystore
> ERROR: Installation failed: /var/lib/tomcat6/common/lib/mysql-connector-java-5.1.6.jar (No such file or directory)
> Caused by:
> java.io.FileNotFoundException: /var/lib/tomcat6/common/lib/mysql-connector-java-5.1.6.jar (No such file or directory)
> at java.io.FileOutputStream.open(Native Method)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
> at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
> at org.fcrepo.utilities.install.Installer.installJDBCDriver(Installer.java:197)
> at org.fcrepo.utilities.install.container.ExistingTomcat50.install(ExistingTomcat50.java:22)
> at org.fcrepo.utilities.install.Installer.install(Installer.java:65)
> at org.fcrepo.utilities.install.Installer.main(Installer.java:258)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at com.simontuffs.onejar.Boot.run(Boot.java:306)
> at com.simontuffs.onejar.Boot.main(Boot.java:159)



Using '/var/lib/tomcat6/common/lib/mysql-connector-java-5.1.13-bin.jar' as the value, which I manually downloaded and installed into Tomcat:

> Preparing FEDORA_HOME...
> Configuring fedora.fcfg
> Installing beSecurity
> Will not overwrite existing /var/lib/tomcat6/conf/server.xml.
> Wrote example server.xml to:
> /usr/local/fedora/install/server.xml
> WARNING: A keystore file already exists at: /var/lib/tomcat6/conf/keystore.
> WARNING: The existing keystore will not be overwritten.
> WARNING: The installer-provided keystore will not be installed, it will be copied to:
> /usr/local/fedora/install/keystore
> ERROR: Installation failed: Copy to /var/lib/tomcat6/common/lib/mysql-connector-java-5.1.13-bin.jar failed.

Using '/usr/share/java/mysql-connector-java.jar' as the value (this is a symlink to /var/lib/tomcat6/common/lib/mysql-connector-java-5.1.10.jar, and using the real location has the same result ). This is the version which ships with Debian.

> Preparing FEDORA_HOME...
> Configuring fedora.fcfg
> Installing beSecurity
> Will not overwrite existing /var/lib/tomcat6/conf/server.xml.
> Wrote example server.xml to:
> /usr/local/fedora/install/server.xml
> WARNING: A keystore file already exists at: /var/lib/tomcat6/conf/keystore.
> WARNING: The existing keystore will not be overwritten.
> WARNING: The installer-provided keystore will not be installed, it will be copied to:
> /usr/local/fedora/install/keystore
> ERROR: Installation failed: Copy to /var/lib/tomcat6/common/lib/mysql-connector-java.jar failed.
> root@riga:/home/swadmin# java -jar fcrepo-installer-3.4.jar



I'm using Tomcat 6.0.28-1 (Debian), MySQL 5.1.49-1 (Debian), libmysql-java 5.1.10+dfsg-2 and the Sun Java 6 JDK, all on a 64-bit Debian 6 VM.

Many thanks in advance.

Graeme West


Digital Repository Developer
Information Services
Glasgow Caledonian University
graem...@gcu.ac.uk




Glasgow Caledonian University is a registered Scottish charity, number SC021474

Winner: Times Higher Education's Widening Participation Initiative of the Year 2009 and Herald Society's Education Initiative of the Year 2009
http://www.gcu.ac.uk/newsevents/news/bycategory/theuniversity/1/name,6219,en.html

Gottwig, Jeremy M. (GSFC-272.0)[ZIMMERMAN & ASSOC.]

unread,
Aug 23, 2010, 9:35:59 AM8/23/10
to fedora-commons-users
I've run into this problem on previous versions as well and usually just get around it by creating a lib->classes symbolic link or just by creating a common/lib/ directory.
------------------------------------------------------------------------------
This SF.net email is sponsored by

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________
Fedora-commons-users mailing list
Fedora-com...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

West, Graeme

unread,
Aug 23, 2010, 9:37:15 AM8/23/10
to fedora-commons-users
Hello all.
As an adjunct to this, here is the (blindingly obvious) solution: symlink /var/lib/tomcat6/common/lib to /var/lib/tomcat6/common/lib.

After that, the install proceeds fine.

Hope this helps someone else running Debian.

Graeme
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by
>
> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> http://p.sf.net/sfu/RIM-dev2dev
> _______________________________________________
> Fedora-commons-users mailing list
> Fedora-com...@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>
> Email has been scanned for viruses by Altman Technologies' email management service - www.altman.co.uk/emailsystems

West, Graeme

unread,
Aug 23, 2010, 9:48:20 AM8/23/10
to fedora-commons-users
Hi Jeremy, thanks for your help.

FYI, I made a typo- I meant to write:
> symlink /var/lib/tomcat6/common/classes to /var/lib/tomcat6/common/lib.


Graeme

Steve Bayliss

unread,
Aug 24, 2010, 8:39:29 AM8/24/10
to West, Graeme, fedora-commons-users
Hi Graeme

Could you confirm exactly which version of Tomcat it is - I'd like to make
sure there are no issues with the non-Debian version as well.

We could perhaps provide a custom installer option for this. Or maybe
somehow detect this automatically and deal with it, though with the variety
of potential versions, distributions etc I'm not sure whether we would want
to do this.

Regards
Steve

> -----Original Message-----
> From: West, Graeme [mailto:Graem...@gcu.ac.uk]
> Sent: 23 August 2010 14:48
> To: fedora-commons-users
> Subject: Re: [fcrepo-user] 3.4 install error: MySQL connector
> copy (Debian 6, Tomcat 6)
>
>

West, Graeme

unread,
Aug 24, 2010, 9:02:02 AM8/24/10
to Steve Bayliss, fedora-commons-users
Hi Steve,
It's Tomcat 6.0.28-1 from Debian Squeeze [1].

The Fedora installer seems to require the lib --> classes symlink inside the 'common' folder, but putting Connector/J in there has no effect. I found that instead I had to create a $CATALINA_HOME/lib directory and put Connector/J into there.

At the moment I'm in the middle of replicating my (working) test install on a production machine, after which I plan to add a rudimentary 'how to' guide for Fedora 3.4 on Debian 6 to the DuraSpace wiki. I'll circulate a link when it's done.

I reckon that the mainline version of Tomcat 6.0.28/29 will probably be OK, since it has a lib directory in its $CATALINA_HOME. The Debian directory structure certainly seems non-standard compared to what's listed in the Tomcat documentation [2] (it assumes $CATALINA_HOME/lib ), but I haven't been able to find anything in the Debian package which explains why it varies, or indeed why it doesn't include such a directory.

Perhaps others can confirm this?

Thanks,

Graeme

[1] http://packages.debian.org/source/squeeze/tomcat6
[2] http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html#MySQL_DBCP_Example


Graeme West
Digital Repository Developer
Information Services
Glasgow Caledonian University
graem...@gcu.ac.uk



Steve Bayliss

unread,
Aug 24, 2010, 10:08:52 AM8/24/10
to West, Graeme, fedora-commons-users
Thanks Graeme

I can see in catalina.properties in my installation that there is:

common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar

And on an earlier version of Tomcat I have:

common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*
.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.ja
r

So we could at least be performing a check to see if the intended location
is included there. Or maybe even determining the location from that.

Actually maybe that is a better option for you than symlink-ing? You could
try adding the directory and adding it to that path/jar path and see if it
is picked up?

Steve

> -----Original Message-----
> From: West, Graeme [mailto:Graem...@gcu.ac.uk]
> Sent: 24 August 2010 14:02
> To: Steve Bayliss
> Cc: fedora-commons-users
> Subject: Re: [fcrepo-user] 3.4 install error: MySQL connector
> copy (Debian 6, Tomcat 6)
>
>

West, Graeme

unread,
Aug 24, 2010, 10:49:06 AM8/24/10
to Steve Bayliss, fedora-commons-users
Hi Steve,
Yes - the symlink is still necessary initially to prevent the installer from flaking out, since copying the connector to the default location fails otherwise.

Adding "/var/lib/tomcat6/common/lib/*.jar" or "/var/lib/tomcat6/common/lib/*.jar" to common.loader certainly then causes Tomcat to pick up the JAR.

But checking that the directory is part of the common.loader dirs during install would make a lot of sense, and would render the symlink unnecessary. Given the potential for wildcards in common.loader, I suppose determining the install location automatically from its values would be tricky, but yes - even more useful!

FYI: it has the following value by default in Debian 6:

> common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,/var/lib/tomcat6/common/classes,/var/lib/tomcat6/common/*.jar


Tomcat seems the not to drill down as far as the $CATALINA_HOME/common/lib directory, but rather stop one level higher, since placing the connector in $CATALINA_HOME/common works fine.

I'll include this stuff in my how-to when I post it.

Thanks,

Graeme

West, Graeme

unread,
Aug 24, 2010, 12:36:37 PM8/24/10
to fedora-commons-users
Hello all,
I've adapted Christian Rohrer's Debian Etch howto to produce a more up-to-date install guide for Fedora 3.4 on Debian 6, taking into account the issues reported in this thread:

https://wiki.duraspace.org/x/mghQAQ

Hope it's useful to someone.

Regards,

Graeme
> ------------------------------------------------------------------------------
> Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
> Be part of this innovative community and reach millions of netbook users
> worldwide. Take advantage of special opportunities to increase revenue and
> speed time-to-market. Join now, and jumpstart your future.
> http://p.sf.net/sfu/intel-atom-d2d

Steve Bayliss

unread,
Aug 25, 2010, 3:34:37 AM8/25/10
to West, Graeme, fedora-commons-users
Thanks for this contribution Graeme.

I've raised https://jira.duraspace.org/browse/FCREPO-783 for the
installation issue.

Regards
Steve

> -----Original Message-----
> From: West, Graeme [mailto:Graem...@gcu.ac.uk]
> Sent: 24 August 2010 17:37
> To: fedora-commons-users
> Cc: Steve Bayliss
> Subject: Re: [fcrepo-user] 3.4 install error: MySQL connector
> copy (Debian 6, Tomcat 6)
>
>
>> Email has been scanned for viruses by Altman Technologies' email
management service - www.altman.co.uk/emailsystems
>
>
> Glasgow Caledonian University is a registered Scottish charity, number
SC021474
>
> Winner: Times Higher Education's Widening Participation Initiative of the
Year 2009 and Herald Society's Education Initiative of the Year 2009
>
http://www.gcu.ac.uk/newsevents/news/bycategory/theuniversity/1/name,6219,en
.html
>
>
----------------------------------------------------------------------------
Reply all
Reply to author
Forward
0 new messages