2012-07-24 5 views
0

hibernate-3.4.0.GA를 사용하는 응용 프로그램 용 ddl 스크립트를 만들려고합니다. 여기 내 pom.xml 파일hibernate3 : hbm2ddl 목표 아니오 jdbc 연결

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.apprick.webservice</groupId> 
<artifactId>apprickwebapp</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>webapp Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<dependencies> 

    <!-- MySQL database driver --> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.21</version> 
    </dependency> 

    <!-- Hibernate framework --> 
    <dependency> 
     <groupId>hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>3.4.0.GA</version> 
    </dependency> 


    <!-- Hibernate library dependecy start --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.6</version> 
    </dependency> 

    <dependency> 
     <groupId>dom4j</groupId> 
     <artifactId>dom4j</artifactId> 
     <version>1.6.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.1.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     <version>3.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib</artifactId> 
     <version>2.2</version> 
    </dependency> 
    <!-- Hibernate library dependecy end --> 

    <dependency> 
     <groupId>javax.transaction</groupId> 
     <artifactId>jta</artifactId> 
     <version>1.1</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.1</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 

     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>hibernate3-maven-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <components> 
        <component> 
         <name>hbm2ddl</name> 
         <implementation>annotationconfiguration</implementation> 
        </component> 
       </components> 
       <componentProperties> 
        <drop>true</drop> 
        <configurationfile>src/main/resources/hibernate.cfg.xml</configurationfile> 
       </componentProperties> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>mysql</groupId> 
        <artifactId>mysql-connector-java</artifactId> 
        <version>5.1.8</version> 
       </dependency> 
      </dependencies> 
     </plugin> 

    </plugins> 
    <finalName>webapp</finalName> 
</build> 
</project> 

난 내 프로젝트에는이 persistence.xml가없는 있도록 주석을 기반으로 3.4.0-GA 전체 프로젝트를 최대 절전 모드 사용하고 있기 때문에입니다. 내가 MVN Hibernate3는 실행 이제 때의 hibernate.cfg.xml 파일이

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.bytecode.use_reflection_optimizer">false</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.password">password</property> 
    <!-- <property name="hibernate.connection.url">jdbc:mysql://localhost/apprick_db</property> --> 
    <property name="hibernate.connection.username">rsingh</property> 
    <property name="hibernate.connection.password">welcome</property> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="show_sql">true</property> 
    <!-- <property name="hbm2ddl.auto">create</property> --> 
    <mapping class="com.apprick.common.User"></mapping> 
    <mapping class="com.apprick.common.Customer"></mapping> 
    <mapping class="com.apprick.common.ApprickAdmin"></mapping> 
    </session-factory> 
</hibernate-configuration> 

같다 : hbm2ddl을 나는

java.lang.UnsupportedOperationException: The user must supply a JDBC connection 
at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54) 
at org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(ManagedProviderConnectionHelper.java:52) 
at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:252) 
at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:211) 
at org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:112) 
at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:152) 
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
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.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 

사람이 나에게 그것에 대한 해결책을 제안시겠습니까 다음과 같은 예외를 얻을. 나는 지난 이틀 동안이 일을 끝내려고 노력해 왔고 그게 완전히 나를 미치게 만들었다.

게시물을 읽어 주셔서 감사 드리며 귀하의 의견을 보내 주셔서 감사합니다.

답변

1

지금까지 설명해 주셨으면합니다. 그러나 경우에 당신이 여기 없어 가지고는 힌트 : 파일있는 hibernate.cfg.xml을 제공

당신이

<configurationfile>hibernate.cfg.xml</configurationfile> 

충분 전체 경로를 지정하기 때문에 일부

<componentProperties> 
    <drop>true</drop> 
    <configurationfile>src/main/resources/hibernate.cfg.xml</configurationfile> 
</componentProperties> 

이 잘못

당신은 루트 클래스 패스에 있습니다 (예 : WEB-INF/classes)