Файлы конфигурации Hibernate в файле WAR, созданном Ant - PullRequest
2 голосов
/ 06 июня 2011

У меня есть веб-приложение в Eclipse, которое работает нормально. Я создал файл war, используя нижеприведенный скрипт ant, он работает до тех пор, пока программа не попытается получить доступ к Hibernate:

<?xml version="1.0" encoding="UTF-8"?>
<!-- !DOCTYPE removes the warning: 
No grammar constraints (DTD or XML schema) detected for the document. 
-->
<!DOCTYPE project>
<project name="Audiclave" default="Deploy" basedir=".">
   <property name="src.dir" location="src" />
   <property name="build.dir" location="build" />
   <property name="dist.dir" location="dist" />
   <property name="build.classes" location="build/classes" />
   <property name="docs.dir" location="docs" />
   <property name="web.dir" location="WebContent" />
   <!-- Deletes the existing build, docs and dist directory-->
   <target name="clean">
       <delete dir="${build.classes}" />
       <delete dir="${build.dir}" />
       <delete dir="${docs.dir}" />
       <delete dir="${dist.dir}" />
   </target>

   <!-- Creates the  build, docs and dist directory-->
   <target name="makedir">
      <mkdir dir="${build.classes}" />
      <mkdir dir="${build.dir}" />
      <mkdir dir="${docs.dir}" />
      <mkdir dir="${dist.dir}" />
   </target>
   <path id="compile.classpath">
      <fileset dir="${web.dir}/WEB-INF/lib">
         <include name="*.jar" />
      </fileset>
   </path>
   <target name="compile" depends="clean,makedir">
      <javac srcdir="${src.dir}" debug="true" destdir="${build.classes}">
         <classpath refid="compile.classpath" />
       </javac>
   </target>
   <!-- Creates Javadoc -->
   <target name="docs" depends="compile">
      <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
         <!-- Define which files / directory should get included, we include all -->
         <fileset dir="${src.dir}">
            <include name="**" />
         </fileset>
      </javadoc>
   </target>
   <target name="Deploy">
      <war destfile="${build.dir}/audiClave.war" webxml="${web.dir}/WEB-INF/web.xml">
         <!-- Include the compiled classes from the compile target -->
         <classes dir="${build.classes}" />

         <!-- Include any configuration files (hibernate) -->
         <fileset dir="${src.dir}" includes="**/*.xml" />

         <!-- Include any web content -->
         <fileset dir="${web.dir}" />
         <lib dir="${web.dir}/WEB-INF/lib" />
      </war>
   </target>
</project>

Проблема, с которой я столкнулся, - это расположение конфигурационных файлов Hibernate. В моем приложении они находятся:

audiClave\src

но в развернутом приложении xml-файлы находятся в:

audiClave

тогда как я думаю, что они должны быть в:

audiClave\WEB-INF\classes

Как мне сделать заявление:

<fileset dir="${src.dir}" includes="**/*.xml" />

отправьте файлы в каталог WEB-INF \ classes (если это то место, где они должны быть).

EDIT Изменен скрипт для включения следующего, и он работал правильно:

<target name="compile" depends="clean,makedir">
    <javac srcdir="${src.dir}" debug="true" destdir="${build.classes}">
        <classpath refid="compile.classpath" />
    </javac>
    <copy todir="${build.classes}">
        <fileset dir="${src.dir}" includes="**/*.xml,**/*.properties"/>
    </copy>
</target>

1 Ответ

3 голосов
/ 06 июня 2011

Попросите Ant <copy> файлы в / WEB-INF / classes.Вы правы - вот где они принадлежат.Обязательно создайте путь к каталогу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...