Ugh, the problem turned out to be in using forward slash in the pool
name (converted to %2F by Geronimo on save). Once I renamed it to a
letter-only string, I was able to create a database pool with no
problems. Thanks Trygve for your help. Turned out we were looking in
the wrong direction as the error was so misleading.
Thanks,
Andrus
On Aug 23, 2008, at 9:57 PM, Trygve Hardersen wrote:
I haven't used the console or the deployer much, but I use the car-
maven-plugin to generate plans. The generated plan.xml typically
looks like this:
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/
connector-1.2">
<!--The DB pool-->
<dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2
">
<dep:moduleId>
<dep:groupId>mygroup</dep:groupId>
<dep:artifactId>db-plugin</dep:artifactId>
<dep:version>0.0.3-SNAPSHOT</dep:version>
<dep:type>car</dep:type>
</dep:moduleId>
<dep:dependencies>
<dep:dependency>
<dep:groupId>org.apache.geronimo.configs</dep:groupId>
<dep:artifactId>connector-deployer</dep:artifactId>
<dep:version>2.1.3-SNAPSHOT</dep:version>
<dep:type>car</dep:type>
</dep:dependency>
<dep:dependency>
<dep:groupId>mysql</dep:groupId>
<dep:artifactId>mysql-connector-java</dep:artifactId>
<dep:version>5.1.6</dep:version>
<dep:type>jar</dep:type>
</dep:dependency>
<dep:dependency>
<dep:groupId>org.tranql</dep:groupId>
<dep:artifactId>tranql-connector-mysql-local</dep:artifactId>
<dep:version>1.2</dep:version>
<dep:type>rar</dep:type>
</dep:dependency>
<dep:dependency>
<dep:groupId>mygroup</dep:groupId>
<dep:artifactId>db-sql</dep:artifactId>
<dep:version>0.0.3-SNAPSHOT</dep:version>
<dep:type>jar</dep:type>
</dep:dependency>
</dep:dependencies>
<dep:hidden-classes/>
<dep:non-overridable-classes/>
</dep:environment>
<resourceadapter>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface>javax.sql.DataSource</
connectionfactory-interface>
<connectiondefinition-instance>
<name>mydb</name>
<config-property-setting name="ServerName">localhost</
config-property-setting>
<config-property-setting name="PortNumber">3306</config-
property-setting>
<config-property-setting name="DatabaseName">mydb</config-
property-setting>
<config-property-setting name="UserName">dbuser</config-
property-setting>
<config-property-setting name="Password">secret</config-
property-setting>
<connectionmanager>
<local-transaction/>
<single-pool>
<max-size>20</max-size>
<min-size>1</min-size>
<blocking-timeout-milliseconds>10000</blocking-timeout-
milliseconds>
<idle-timeout-minutes>5</idle-timeout-minutes>
<match-one/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
<!--The DB schema initialization script-->
<gbean name="mydbschema"
class="org.apache.geronimo.connector.DatabaseInitializationGBean">
<attribute name="testSQL">show tables from mydb</attribute>
<attribute name="path">META-INF/sql/create-mydb.sql</attribute>
<reference name="DataSource">
<name>mydb</name>
</reference>
</gbean>
</connector>
A shot in the wild but try using a simple artifactId for your plugin
as well, just to see if jdbc%2FmyDB causes a problem.
Trygve
2008/8/23 Andrus Adamchik <[EMAIL PROTECTED]>
Thanks for the hint. I saved the plan, and then added the dep below,
and then followed the instructions on the console page to do
deployment. No luck with that either, but the error seems to be
different. There is nothing in the logs, but the Mac terminal output
looks like this:
$ java -jar bin/deployer.jar deploy /Users/andrus/Desktop/geronimo-
pool.xml repository/org/tranql/tranql-connector-mysql-local/1.2/
tranql-connector-mysql-local-1.2.rar
Username: system
Password: *******
Error: Unable to distribute tranql-connector-mysql-local-1.2.rar:
Can not load activation spec class
org.tranql.connector.mysql.LocalMCF in classloader
console.dbpool/jdbc%2FwaiversDB/1.0/rar
Any ideas?
Thanks,
Andrus
On Aug 23, 2008, at 9:11 PM, Trygve Hardersen wrote:
I believe you're missing the dependency on tranql-connector-mysql-
local:
<dep:dependency>
<dep:groupId>org.tranql</dep:groupId>
<dep:artifactId>tranql-connector-mysql-local</dep:artifactId>
<dep:version>1.2</dep:version>
<dep:type>rar</dep:type>
</dep:dependency>
Trygve
2008/8/23 Andrus Adamchik <[EMAIL PROTECTED]>
Hi there,
just got a vanilla install of Geronimo - geronimo-jetty6-
javaee5-2.1.2. Tried to setup a Database Pool connecting to MySQL. I
successfully downloaded the MySQL driver via the console, but when I
am trying to save the pool with this driver I am getting an error
below. Looks like some dependency is not accessible. Plan XML file
is also shown below. Not sure whether I need to add something
manually to it?
Thanks,
Andrus
Exception
-------------
Deployer operation failed: Can not load activation spec class
org.apache.geronimo.common.DeploymentException: Can not load
activation spec class
at
org
.apache
.geronimo
.connector
.deployment
.ConnectorModuleBuilder
.setUpDynamicGBean(ConnectorModuleBuilder.java:646)
at
org
.apache
.geronimo
.connector
.deployment
.ConnectorModuleBuilder
.setUpDynamicGBeanWithProperties(ConnectorModuleBuilder.java:730)
at
org
.apache
.geronimo
.connector
.deployment
.ConnectorModuleBuilder
.getManagedConnectionFactoryInfoMap(ConnectorModuleBuilder.java:698)
at
org
.apache
.geronimo
.connector
.deployment
.ConnectorModuleBuilder.initContext(ConnectorModuleBuilder.java:483)
at
org
.apache
.geronimo
.j2ee
.deployment
.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:595)
at
org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:254)
at
org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:133)
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:585)
at
org
.apache
.geronimo
.gbean
.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:
34)
at
org
.apache
.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
at
org
.apache
.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:
239)
at
org
.apache
.geronimo
.deployment
.plugin
.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
at
org
.apache
.geronimo
.deployment
.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.ClassNotFoundException:
org.tranql.connector.mysql.LocalMCF in classloader console.dbpool/
jdbc%2FmyDB/1.0/rar
at
org
.apache
.geronimo
.kernel
.config
.MultiParentClassLoader
.loadOptimizedClass(MultiParentClassLoader.java:436)
at
org
.apache
.geronimo
.kernel
.config.MultiParentClassLoader.loadClass(MultiParentClassLoader.java:
278)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
org
.apache
.geronimo
.connector
.deployment
.ConnectorModuleBuilder
.setUpDynamicGBean(ConnectorModuleBuilder.java:643)
... 17 more
Plan XML File
-------------
<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/
connector-1.2">
<dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2
">
<dep:moduleId>
<dep:groupId>console.dbpool</dep:groupId>
<dep:artifactId>jdbc%2FmyDB</dep:artifactId>
<dep:version>1.0</dep:version>
<dep:type>rar</dep:type>
</dep:moduleId>
<dep:dependencies>
<dep:dependency>
<dep:groupId>mysql</dep:groupId>
<dep:artifactId>mysql-connector-java</dep:artifactId>
<dep:version>3.1.12</dep:version>
<dep:type>jar</dep:type>
</dep:dependency>
</dep:dependencies>
</dep:environment>
<resourceadapter>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface>javax.sql.DataSource</
connectionfactory-interface>
<connectiondefinition-instance>
<name>jdbc/waiversDB</name>
<config-property-setting name="Password">********</
config-property-setting>
<config-property-setting name="DatabaseName">mydb</
config-property-setting>
<config-property-setting name="UserName">root</
config-property-setting>
<connectionmanager>
<no-transaction/>
<single-pool>
<max-size>5</max-size>
<min-size>1</min-size>
<match-one/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
</connector>