Hi,

I hope some can help.

I tried to setup a production profile as Marin Homik previous maven settings
in this thread but I get an exception: 

Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Full exception:

------------------

[INFO] Preparing hibernate3:hbm2ddl
[WARNING] Removing: hbm2ddl from forked lifecycle, to prevent recursive
invocation.
[INFO] [aspectj:compile {execution: default}]
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [hibernate3:hbm2ddl {execution: default}]
[INFO] src/main/resources/hibernate.cfg.xml not found within the project.
Trying absolute path.
[INFO] No hibernate configuration file loaded.
[INFO] Configuration Properties file loaded:
E:\Development\giftmanager\core\target\test-classes\jdbc.properties
ERROR - SchemaExport.execute(202) | schema export unsuccessful
java.sql.SQLException: No suitable driver found for
jdbc:mysql://localhost/mydatabase?createDatabaseIfNotExist=true&useUn
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)
        at
org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
        at
org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:28)
        at
org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)
        at
org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
        at
org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:112)
        at
org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:140)
        at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        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:597)
        at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[WARNING] 1 errors occurred while performing <hbm2ddl>.
[ERROR] Error #1: java.sql.SQLException: No suitable driver found for
jdbc:mysql://localhost/mydatabase?createDatabaseIfNotEx
[INFO] [compiler:testCompile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [dbunit:operation {execution: default}]
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error executing database operation: CLEAN_INSERT

Embedded error: com.mysql.jdbc.Driver
[INFO]
------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error executing
database operation: CLEAN_INSERT
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        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:597)
        at
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing
database operation: CLEAN_INSERT
        at
org.codehaus.mojo.dbunit.OperationMojo.execute(OperationMojo.java:110)
        at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
        ... 16 more
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at
org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
        at
org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
        at
org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at
org.codehaus.mojo.dbunit.AbstractDbUnitMojo.createConnection(AbstractDbUnitMojo.java:159)
        at
org.codehaus.mojo.dbunit.OperationMojo.execute(OperationMojo.java:93)
        ... 18 more
[INFO]
------------------------------------------------------------------------

------------------



Following resides in my root pom.xml file (what is wrong ?):

<!-- ================= Production Settings Profile
========================== -->
    <!-- Use "-P prod" when you want to run production mode                     
 
-->
    <!-- This profile skips hibernate3, dbunit repopulation and the test
plugins. -->
    <!--
======================================================================== -->
    <profiles>
        <profile>
            <id>prodx</id>
            <!--<activation>
                <activeByDefault>true</activeByDefault>
            </activation>-->
            
            <build>
                                
                <plugins>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>dbunit-maven-plugin</artifactId>
                        <version>1.0-beta-1</version>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>hibernate3-maven-plugin</artifactId>
                        <version>2.0-alpha-2</version>
                        <configuration>
                        <components>
                            <component>
                                <name>hbm2doc</name>
                               
<implementation>annotationconfiguration</implementation>
                            </component>
                            <component>
                                <name>hbm2ddl</name>
                               
<implementation>annotationconfiguration</implementation>
                            </component>
                        </components>
                        <componentProperties>
                            <drop>false</drop>
                            <export>true</export>
                            <outputfilename>schema.sql</outputfilename>
                           
<propertyfile>web/target/classes/jdbc.properties</propertyfile>
                            <skip>true</skip>
                        </componentProperties>          
                        </configuration>                        
                    </plugin>
                </plugins>                                
            </build>
            <properties>
               
<dbunit.dataTypeFactoryName>org.dbunit.dataset.datatype.DefaultDataTypeFactory</dbunit.dataTypeFactoryName>
                <dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
               
<hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>
                <jdbc.groupId>mysql</jdbc.groupId>
                <jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
                <jdbc.version>5.0.5</jdbc.version>
               
<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
               
<jdbc.url><![CDATA[jdbc:mysql://localhost/mydatabase?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
                <jdbc.username>user</jdbc.username>
                <jdbc.password>pass</jdbc.password>
            </properties>
        </profile>
    </profiles>




Martin Homik wrote:
> 
> Change the the default database to hsqldb in the end of the pom:
> 
> 
> <!-- Database settings -->
> <dbunit.dataTypeFactoryName>org.dbunit.ext.hsqldb.HsqldbDataTypeFactory</dbunit.dataTypeFactoryName>
> <dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
> <hibernate.dialect>org.hibernate.dialect.HSQLDialect</hibernate.dialect>
> <project.tmpdir>tmp</project.tmpdir>
> <jdbc.groupId>hsqldb</jdbc.groupId>
> <jdbc.artifactId>hsqldb</jdbc.artifactId>
> <jdbc.version>1.8.0.7</jdbc.version>
> <jdbc.driverClassName>org.hsqldb.jdbcDriver</jdbc.driverClassName>
> <jdbc.url><![CDATA[jdbc:hsqldb:tmp/someDB;shutdown=true]]></jdbc.url>
> <jdbc.username>sa</jdbc.username>
> <jdbc.password></jdbc.password>
> 
> Add a profile for production use, such as:
> 
> <!-- ================= Production Settings Profile ================= -->
> <!-- Use "-P prod" when you want to run production mode              -->
> <!-- =============================================================== -->
>         <profile><id>prod</id>
>             <build>
>                 <plugins>
>                     <plugin>
>                      <artifactId>maven-surefire-plugin</artifactId>
>                           <configuration>
>                                       <skip>true</skip>
>                                       </configuration>
>                               </plugin>        
>                               <plugin>
>                               <groupId>org.codehaus.mojo</groupId>
>                               <artifactId>dbunit-maven-plugin</artifactId>
>                               <version>1.0-beta-1</version>
>                               <configuration>
>                                       <skip>true</skip>
>                               </configuration>
>                               </plugin>               
>                               <plugin>
>                               <groupId>org.codehaus.mojo</groupId>
>                               <artifactId>hibernate3-maven-plugin</artifactId>
>                               <version>2.1</version>
>                               <configuration>
>                                       <components>
>                                       <component>
>                                       <name>hbm2ddl</name>
>                               
> <implementation>annotationconfiguration</implementation>
>                                       </component>
>                               </components>
>                               <componentProperties>
>                                       <drop>false</drop>
>                                       <jdk5>true</jdk5>
>                               
> <propertyfile>target/classes/jdbc.properties</propertyfile>
>                                       <skip>true</skip>
>                               </componentProperties>
>                               </configuration>
>                               </plugin>
>                 </plugins>
>             </build>
>                       <properties>
>                       <jdbc.groupId>mysql</jdbc.groupId>
>                       <jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
>                       <jdbc.version>5.0.5</jdbc.version>
>               
> <hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>
>                       
>               
> <jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
>               
> <jdbc.url><![CDATA[jdbc:mysql://localhost/db_prod?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
>                       <jdbc.username>someone</jdbc.username>
>                       <jdbc.password>something</jdbc.password>
>                       </properties>
>         </profile>
> 
> 
> This profile skips hibernate3, dbunit repopulation and the test plugins.
> 
> Hope, that helps.
> 
> Martin
> 
> 
> 
> 
> Tarjei Huse wrote:
>> 
>> Hi, I'm using Appfuse with hibernate and I want to run my
>> unit/integration tests in HSQLDB (or a different in-memory database) but
>> use mysql for my production environment as well as my staging
>> environment. 
>> 
>> Basically:
>> Run the test phase using HSQLDB, but switch to using mysql for mvn
>> jetty:run-war or mvn war -> but then with different username/password
>> configurations.
>> 
>> I would guess this is a quite common pattern, so how should it be done?
>> 
>> I've found some pointers, but I am not completely satisfied with them:
>> [1] shows how to configure Appfuse to use HSQLDB, but I cannot find where
>> the xml fragments should go. Also [2] discusses how to do this using
>> different profiles.
>> 
>> 1. http://thread.gmane.org/gmane.comp.java.appfuse.user/20476
>> 2. http://thread.gmane.org/gmane.comp.java.appfuse.user/28929/focus=29007
>> 
>> It seems to me that the best way would be if different profiles could be
>> activated for different phases (test, jetty:run-war) but that seems to me
>> not to be possible.
>> 
>> So, what is the best way to do this?
>> 
>> Kind regards,
>> Tarjei
>> 
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Separate-database-settings-for-testing%2C-staging-and-production-tp19586169s2369p25495270.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net
For additional commands, e-mail: users-h...@appfuse.dev.java.net

Reply via email to