你就看夏昕的那个开发指南,那上面有,很详细。我也配了一个,为什么能连到数据库却找不到表。我用的是oracle9i把所有的库都给列出来了。
[middlegen] No <table> elements specified. Reading all tables. This might take a
 while...BUILD FAILED
G:\hibernate tools\Middlegen-Hibernate-r5\build.xml:148: middlegen.MiddlegenExce
ption: Middlegen successfully connected to the database, but couldn't find any t
ables. Perhaps the specified schema or catalog is wrong? -Or maybe there aren't
any tables in the database at all?
Configured schema:
Configured catalog:null
Available schemas:
  AAAAAA
  ANONYMOUS
  BKC
  BOOKSHOP
  BXGT
  CHANCE_OA
  CTXSYS
  CWB_PROJECT
  DBSNMP
  DLHARBOR
  DMK
  FY
  HIPORTAL
  HR
  IAPPROVE
  IOFFICE
  IPERSON
  IPORTAL
  IPORTAL2
  IPORTALNEW
  ISA
  JC
  LNQTS
  LUCHENG
  LVSHUN
  MAPSTATS
  MDSYS
  MSRICH
  ODM
  ODM_MTR
  OE
  OLAPSYS
  OPENCMS
  ORDPLUGINS
  ORDSYS
  OUTLN
  OVERFLOW
  PERFSTAT
  PM
  PP
  PP_Y
  PY
  QQJ
  QS
  QS_ADM
  QS_CB
  QS_CBADM
  QS_CS
  QS_ES
  QS_OS
  QS_WS
  QUERYUSER
  REPADMIN
  RESUME
  RMAN
  SCHEDULER
  SCOTT
  SH
  SHIHUA
  SYS
  SYSTEM
  TEST
  WKPROXY
  WKSYS
  WMSYS
  XDB
  XYS
  ZGWJ
Available catalogs:
Total time: 6 seconds

解决方案 »

  1.   

    我也是花了很长时间配置出来的。
    mssql.xml
    请注意我用的是microsoft的jdbc driver   <!-- =================================================================== -->
       <!-- ant properties/targets for MS SQL Server                            -->
       <!-- note: this is not a proper xml file (there is no root element)      -->
       <!--       it is intended to be imported from a *real* xml file          -->
       <!-- =================================================================== -->   <property name="database.script.file"           value="${src.dir}/sql/${name}-mssql.sql"/>
       <property name="database.driver.classpath"           value="F:/Progs/Java/MSSQL2000DrvforJDBC/lib/msbase.jar;F:/Progs/Java/MSSQL2000DrvforJDBC/lib/msutil.jar;F:/Progs/Java/MSSQL2000DrvforJDBC/lib/mssqlserver.jar"/>
       <property name="database.driver.file"           value="F:/Progs/Java/MSSQL2000DrvforJDBC/lib/mssqlserver.jar"/>
       <property name="database.driver.file"           value="F:/Progs/Java/MSSQL2000DrvforJDBC/lib/msutil.jar"/>
       <property name="database.driver.file"           value="F:/Progs/Java/MSSQL2000DrvforJDBC/lib/msbase.jar"/>
       <property name="database.driver"                value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
       <property name="database.url"                   value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DBForTest"/>
       <property name="database.userid"                value="sa"/>
       <property name="database.password"              value=""/>
       <!-- In MS SQL the schema is the owner of the tables as displayed by SQL Server Enterprise Manager -->
       <property name="database.schema"                value="dbo"/>
       <!-- In MS SQL the catalog is the database, for example, 'Northwind' -->
       <property name="database.catalog"               value="DBForTest"/>   <property name="jboss.datasource.mapping"       value="MS SQLSERVER"/>
       <!--property name="jboss.datasource.mapping"       value="MS SQLSERVER2000"/-->
      

  2.   

    //build.xml
    <?xml version="1.0"?>
    <!DOCTYPE project [
        <!ENTITY database SYSTEM "file:./config/database/mssql2000.xml">
    ]><project name="Middlegen Hibernate" default="all" basedir="."><!-- project name="Middlegen Hibernate" default="all" basedir="." -->
     
       <property file="${basedir}/build.properties"/>
       <property name="name" value="MyHibernate"/>   <!-- This was added because we were several people (in a course) deploying to same app server>
       <property environment="env"/>
       <property name="unique.name"                    value="${name}.${env.COMPUTERNAME}"/-->   <property name="gui"                            value="true"/>   <property name="unique.name"                    value="${name}"/>   <property name="appxml.src.file"                value="${basedir}/src/application.xml"/>
       <property name="lib.dir"                        value="${basedir}/lib"/>
       <property name="src.dir"                        value="${basedir}/src"/>
       <property name="java.src.dir"                   value="${src.dir}/java"/>
       <property name="web.src.dir"                    value="${src.dir}/web"/>
       
       <property name="build.dir"                      value="${basedir}/build"/>
       <property name="build.java.dir"                 value="${build.dir}/java"/>
       <property name="build.gen-src.dir"              value="${build.dir}/gen-src"/>
       <property name="build.classes.dir"              value="${build.dir}/classes"/>   &database;
       
       <!-- define the datasource.jndi.name in case the imported ejb file doesn't -->
       <property name="datasource.jndi.name"           value="${name}/datasource"/>   <path id="lib.class.path">
          <pathelement path="${database.driver.classpath}"/>
          <fileset dir="${lib.dir}">
             <include name="*.jar"/>
          </fileset>
          <!-- The middlegen jars -->
          <!--fileset dir="${basedir}/.."-->
          <fileset dir="${basedir}/middlegen-lib">
             <include name="*.jar"/>
          </fileset>
       </path>   <target name="init">
          <available property="xdoclet1.2+" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="lib.class.path"/>
       </target>   <!-- =================================================================== -->
       <!-- Fails if XDoclet 1.2.x is not on classpath                          -->
       <!-- =================================================================== -->
       <target name="fail-if-no-xdoclet-1.2" unless="xdoclet1.2+">
          <fail>
          You must download several jar files before you can build Middlegen.
          </fail>
       </target>   <!-- =================================================================== -->
       <!-- Create tables                                                       -->
       <!-- =================================================================== -->
       <target 
          name="create-tables" 
          depends="init,fail-if-no-xdoclet-1.2,check-driver-present,panic-if-driver-not-present" 
          description="Create tables"
       >
          <echo>Creating tables using URL ${database.url}</echo>
          <sql
             classpath="${database.driver.classpath}"
             driver="${database.driver}"
             url="${database.url}"
             userid="${database.userid}"
             password="${database.password}"
             src="${database.script.file}"
             print="true"
             output="result.txt"
          />
       </target>
       <target name="check-driver-present">
          <available file="${database.driver.file}" type="file" property="driver.present"/>
       </target>
       <target name="panic-if-driver-not-present" unless="driver.present">
          <fail>
          The JDBC driver you have specified by including one of the files in ${basedir}/config/database
          doesn't exist. You have to download this driver separately and put it in ${database.driver.file}
          Please make sure you're using a version that is equal or superior to the one we looked for.
          If you name the driver jar file differently, please update the database.driver.file property
          in the ${basedir}/config/database/xxx.xml file accordingly.
          </fail>
       </target>   <!-- =================================================================== -->
       <!-- Run Middlegen                                                       -->
       <!-- =================================================================== -->
       <target 
          name="middlegen" 
          description="Run Middlegen" 
          unless="middlegen.skip"
          depends="init,fail-if-no-xdoclet-1.2,check-driver-present,panic-if-driver-not-present"
       >
          <mkdir dir="${build.gen-src.dir}"/>   <echo message="Class path = ${basedir}"/>
          <taskdef
             name="middlegen"
             classname="middlegen.MiddlegenTask"
             classpathref="lib.class.path"
          />
      

  3.   

    <middlegen
             appname="${name}"
             prefsdir="${src.dir}"
             gui="${gui}"
             databaseurl="${database.url}"
             initialContextFactory="${java.naming.factory.initial}"
             providerURL="${java.naming.provider.url}"
             datasourceJNDIName="${datasource.jndi.name}"
             driver="${database.driver}"
             username="${database.userid}"
             password="${database.password}"
             schema="${database.schema}"
             catalog="${database.catalog}"
          >
        
             <hibernate
                destination="${build.gen-src.dir}"
                package="${name}.hibernate"
                genXDocletTags="false"
                genIntergratedCompositeKeys="false"
                javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
             />
             
          </middlegen>      <mkdir dir="${build.classes.dir}"/>
       </target>   <!-- =================================================================== -->
       <!-- Compile business logic (hibernate)                                        -->
       <!-- =================================================================== -->
       <target name="compile-hibernate" depends="middlegen" description="Compile hibernate Business Domain Model">
          <javac
             srcdir="${build.gen-src.dir}"
             destdir="${build.classes.dir}"
             classpathref="lib.class.path"
          >
             <include name="**/hibernate/**/*"/>
          </javac>
       </target>
       
       <!-- =================================================================== -->
       <!-- Run hbm2java    depends="middlegen"                                 -->
       <!-- =================================================================== -->
       <target name="hbm2java" description="Generate .java from .hbm files.">
          <taskdef
             name="hbm2java"
             classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
             classpathref="lib.class.path"
          />

    <hbm2java output="${build.gen-src.dir}">
    <fileset dir="${build.gen-src.dir}">
    <include name="**/*.hbm.xml"/>
    </fileset>
    </hbm2java>
       </target>   <!-- =================================================================== -->
       <!-- Build everything                                                    -->
       <!-- =================================================================== -->
       <target name="all" description="Build everything" depends="compile-hibernate"/>   <!-- =================================================================== -->
       <!-- Clean everything                                                    -->
       <!-- =================================================================== -->
       <target name="clean" description="Clean all generated stuff">
          <delete dir="${build.dir}"/>
       </target>   <!-- =================================================================== -->
       <!-- Brings up the hsqldb admin tool                                     -->
       <!-- =================================================================== -->
       <target name="hsqldb-gui" description="Brings up the hsqldb admin tool">
          <property name="database.urlparams" value="?user=${database.userid}&amp;password=${database.password}"/>
          <java 
             classname="org.hsqldb.util.DatabaseManager" 
             fork="yes" 
             classpath="${lib.dir}/hsqldb-1.7.1.jar;${database.driver.classpath}"
             failonerror="true"
          >
             <arg value="-url"/>
             <arg value="${database.url}${database.urlparams}"/>
             <arg value="-driver"/>
             <arg value="${database.driver}"/>
          </java>
       </target>   <!-- ==================================================================== -->
       <!-- Validate the generated xml mapping documents                         -->
       <!-- ==================================================================== -->
       <target name="validate">
          <xmlvalidate failonerror="no" lenient="no" warn="yes">
            <fileset dir="${build.gen-src.dir}/airline/hibernate" includes="*.xml" />
          </xmlvalidate>
       </target>
       
    </project>