Re: Re: Re: Proper way to add a MySQL datasource to JOnAS ?
Benoit Pelletier <[email protected]> Wed, 16 Mar 2011 14:29:39 +0100
| Newsgroups | gmane.comp.java.objectweb.jonas |
|---|---|
| Organization | BULL SAS |
| Message-ID | <[email protected]> |
Frederic Dang Tran wrote: > On Mar 16, 2011, at 11:26 AM, Benoit Pelletier wrote: > > >>> Hi: >>> >>> So far I've added a MySQL datasource to JOnAS (5.2.0M5) the old way: >>> -by adding the JDBC driver jar file (mysql-connector-java-5.1.11-bin.jar) in $JONAS_BASE/lib/ext -by activating the dbm service and adding the datasource in jonas.properties >>> >>> jonas.services ...,dbm,... >>> jonas.service.dbm.datasources MySQL >>> >>> I understand that the proper way to do that in JOnAS is now: >>> -to turn the driver jar file into an OSGi bundle (e.g. with Bnd) and put it in $JONAS_BASE/deploy >>> -to add an xml datasource file in $JONAS_BASE/deploy: >>> >>> mysql-ds.xml: >>> >>> <datasources xmlns="http://jonas.ow2.org/ns/datasource/1.0"> >>> <datasource> >>> <datasource-configuration> >>> <name>foobar</name> >>> <url>jdbc:mysql://localhost:3306/foobar</url> >>> <classname>org.gjt.mm.mysql.Driver</classname> >>> ... >>> </datasources> >>> >>> With this config, I get this exception when starting JOnAS: >>> >>> JOnASResourceService.__deployRar : Error when deploying the rar file: .../work/deployer/datasources/jonas/ds-foobar-8710787520291361920.rarError processing Rar: Class Name not found:org.gjt.mm.mysql.Driver: javax.resource.ResourceException: Class Name not found:org.gjt.mm.mysql.Driver >>> org.ow2.jonas.resource.ResourceServiceException : Error processing Rar: Class Name not found:org.gjt.mm.mysql.Driver: javax.resource.ResourceException: Class Name not found:org.gjt.mm.mysql.Driver >>> at org.ow2.jonas.resource.internal.JOnASResourceService.__createRA(JOnASResourceService.java:472) >>> >>> because the MySQL datasource is set up before the driver bundle is loaded (?) >>> >>> How to fix that ?& >>> >>> >> you might create a deployment plan with 2 resources to ensure the loading sequence : 1) the driver 2) the ds >> The resources have to be located in a dedicated repository (url) defined in $JONAS_BASE/conf/initial-repository.xml >> > > Sure I can do that but it seems to me to be a bit heavyweight: turning a datasource xml file into a maven artifact, redeploying it on a maven rep each time I tweak one of its settings... > you can use a url rep (eg. a local file directory) and put th ds.xml in this directory rather than the deloy dir > It would be nice if the user has some level of control on the order with which items in the $JONAS_BASE/deploy directory are deployed. Maybe something similar to the way services are started on Linux (S01,S02...). > For example, let's assume I have two unrelated JavaEE applications each with its own deployment plan dp1.xml and dp2.xml. These 2 applications requires MySQL configured with a deployment plan db.xml. > I copy db.xml, dp1.xml, dp2.xml into $JONAS_BASE/deploy. How can I make sure that db.xml is deployed first ? > put them in another deployment plan is the standard way with JOnAS > > Regards, > F. > > > > > > > > > > > -- ---------------------------------------------------------------- Benoit Pelletier http://jonas.ow2.org Bull, Architect of an Open World TM http://www.bull.com