[jboss-user] [JBoss Seam] - ant and schema export

Nogard do-not-reply at jboss.com
Thu Jan 17 00:57:27 EST 2008


Hi all,

I want to drop and recreate DB schema before running tests to get rid of possible garbage in DB. So I did next thing:

  | <hibernatetool destdir="${build.dir}">
  | 			<classpath path="${ejb.build.dir}"/>
  | 			<jpaconfiguration persistenceunit="pmpak"/> <!-- Use META-INF/persistence.xml -->
  | 			<hbm2ddl 
  | 				drop="true"
  | 				create="true"
  | 				export="true"
  | 				outputfilename="${build.dir}/export-ddl.sql"
  | 				delimiter=";"
  | 				format="true"/>
  | 		</hibernatetool>
  | 
It works fine and generates ddl file, but fails to export it into DB. Stack trace is:

  | FATAL [main] (DatasourceConnectionProvider.java:55) - Could not find datasource: java:/pmpakDatasource
  | [hibernatetool] javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
  | [hibernatetool] 	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
  | [hibernatetool] 	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  | [hibernatetool] 	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
  | [hibernatetool] 	at javax.naming.InitialContext.lookup(InitialContext.java:351)
  | [hibernatetool] 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
  | [hibernatetool] 	at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
  | [hibernatetool] 	at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
  | [hibernatetool] 	at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:27)
  | [hibernatetool] 	at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)
  | [hibernatetool] 	at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
  | [hibernatetool] 	at org.hibernate.tool.ant.Hbm2DDLExporterTask.execute(Hbm2DDLExporterTask.java:55)
  | [hibernatetool] 	at org.hibernate.tool.ant.HibernateToolTask.execute(HibernateToolTask.java:186)
  | [hibernatetool] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
  | [hibernatetool] 	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
  | [hibernatetool] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | [hibernatetool] 	at java.lang.reflect.Method.invoke(Method.java:585)
  | [hibernatetool] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
  | [hibernatetool] 	at org.apache.tools.ant.Task.perform(Task.java:348)
  | [hibernatetool] 	at org.apache.tools.ant.Target.execute(Target.java:357)
  | [hibernatetool] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
  | [hibernatetool] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
  | [hibernatetool] 	at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
  | [hibernatetool] 	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
  | [hibernatetool] 	at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
  | [hibernatetool] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
  | [hibernatetool] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
  | [hibernatetool] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
  | [hibernatetool] ERROR [main] (SchemaExport.java:202) - schema export unsuccessful
  | [hibernatetool] org.hibernate.HibernateException: Could not find datasource
  | [hibernatetool] 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:56)
  | [hibernatetool] 	at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
  | [hibernatetool] 	at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
  | [hibernatetool] 	at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:27)
  | [hibernatetool] 	at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:180)
  | [hibernatetool] 	at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
  | [hibernatetool] 	at org.hibernate.tool.ant.Hbm2DDLExporterTask.execute(Hbm2DDLExporterTask.java:55)
  | [hibernatetool] 	at org.hibernate.tool.ant.HibernateToolTask.execute(HibernateToolTask.java:186)
  | [hibernatetool] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
  | [hibernatetool] 	at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
  | [hibernatetool] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | [hibernatetool] 	at java.lang.reflect.Method.invoke(Method.java:585)
  | [hibernatetool] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
  | [hibernatetool] 	at org.apache.tools.ant.Task.perform(Task.java:348)
  | [hibernatetool] 	at org.apache.tools.ant.Target.execute(Target.java:357)
  | [hibernatetool] 	at org.apache.tools.ant.Target.performTasks(Target.java:385)
  | [hibernatetool] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
  | [hibernatetool] 	at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
  | [hibernatetool] 	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
  | [hibernatetool] 	at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
  | [hibernatetool] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
  | [hibernatetool] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
  | [hibernatetool] 	at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
  | [hibernatetool] Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
  | [hibernatetool] 	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
  | [hibernatetool] 	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  | [hibernatetool] 	at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
  | [hibernatetool] 	at javax.naming.InitialContext.lookup(InitialContext.java:351)
  | [hibernatetool] 	at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
  | [hibernatetool] 	... 22 more
  | [hibernatetool] 1 errors occurred while performing <hbm2ddl>.
  | [hibernatetool] Error #1: org.hibernate.HibernateException: Could not find datasource
  | 

I suspect it cannot find datasource :) persistence.xml looks like:

  | <persistence-unit name="pmpak">
  |       <provider>org.hibernate.ejb.HibernatePersistence</provider>
  |       <jta-data-source>java:/pmpakDatasource</jta-data-source>
  |       <properties>
  |          <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
  |          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
  |          <property name="hibernate.show_sql" value="true"/>
  |          <property name="jboss.entity.manager.factory.jndi.name" value="java:/pmpakEntityManagerFactory"/>
  |          <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/>
  |       </properties>
  |    </persistence-unit>
  | 
and datasource file is

  | <datasources>
  |    
  |    <local-tx-datasource>
  |       <jndi-name>pmpakDatasource</jndi-name>
  |       <connection-url>jdbc:mysql://localhost:3306/pmpak</connection-url>
  |       <driver-class>com.mysql.jdbc.Driver</driver-class>
  |       <user-name>test</user-name>
  |       <password>test</password>
  |    </local-tx-datasource>
  |     
  | </datasources>
  | 

How can I make it find this datasource? or export ddl into DB in any other way (I would prefer to use datasource though).

Thanks in advance,
Mikhail

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4120712#4120712

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4120712



More information about the jboss-user mailing list