You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Dmitry Zamula <cl...@gmail.com> on 2012/04/17 12:11:30 UTC

MappingToolTask does not work with ConnectionDriverName: BasicDataSource

Hello!

I'm getting an error with OpenJPA 2.2.0 - when using the pooling, the
MappingToolTask does not work.

Part of my build.xml:

<target name="refresh">
    <taskdef name="tablerefresh"
classname="org.apache.openjpa.jdbc.ant.MappingToolTask">
      <classpath refid="myclasspath" />
    </taskdef>
    <tablerefresh schemaAction="drop">
      <config propertiesFile="${dist.persistence.dir}/persistence.xml" />
    </tablerefresh>
</target>

Part of my persistence.xml:

<property name="openjpa.ConnectionDriverName"
value="org.apache.commons.dbcp.BasicDataSource" />
<property name="openjpa.ConnectionURL"
value="jdbc:mysql://localhost:3306/mydb"/>
<property name="openjpa.ConnectionProperties"
value="DriverClassName=com.mysql.jdbc.Driver,
 autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8&amp;connectionCollation=utf8_general_ci&amp;cachePrepStmts=true&amp;cacheCallableStatements=true&amp;cacheServerConfiguration=true&amp;useLocalSessionState=true&amp;elideSetAutoCommits=true&amp;alwaysSendSetIsolation=false&amp;enableQueryTimeouts=false&amp;prepStmtCacheSize=3000&amp;prepStmtCacheSqlLimit=1000
, MaxActive=100
, MaxWait=10000
, TestOnBorrow=true
, poolPreparedStatements=true
, Username=root
, Password="/>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
<property name="openjpa.DataCache" value="true"/>
<property name="openjpa.QueryCache" value="false"/>
<property name="openjpa.jdbc.DBDictionary"
value="batchLimit=100,tableType=myisam"/>
<property name="openjpa.jdbc.QuerySQLCache" value="false"/>

After executing "ant refresh", I get this exception:

<openjpa-2.2.0-r422266:1244990 fatal user error>
org.apache.openjpa.util.UserException: A connection could not be obtained
for driver class "org.apache.commons.dbcp.BasicDataSource" and URL
"jdbc:mysql://localhost:3306/mydb".  You may have specified an invalid URL.
        at
org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:255)
        at
org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:123)
        at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:844)
        at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732)
        at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:872)
        at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource2(JDBCConfigurationImpl.java:914)
        at
org.apache.openjpa.jdbc.schema.SchemaTool.<init>(SchemaTool.java:132)
        at
org.apache.openjpa.jdbc.meta.MappingTool.newSchemaTool(MappingTool.java:312)
        at
org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:493)
        at
org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:1090)
        at
org.apache.openjpa.jdbc.ant.MappingToolTask.executeOn(MappingToolTask.java:222)
        at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:171)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
        at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:809)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.IllegalArgumentException:
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

        at serp.util.Strings.toClass(Strings.java:164)
        at serp.util.Strings.toClass(Strings.java:108)
        at
org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:211)
        at
org.apache.openjpa.lib.conf.Configurations.newInstance(Configurations.java:170)
        at
org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:114)
        ... 26 more


All required classes are in classpath.

_____________________________________
Thanks,
Dmitry Zamula