如何在war的WEB-INF文件夹中包含属性文件



我正在使用ant构建我的web应用程序。我正在尝试从源文件夹将属性文件包含在WEB-INF文件夹中。我已经将它包含在war/WEB-APP/classes文件夹中。但是应用程序没有读取它。因此,我想将它直接包含在WEB-INF文件夹中,以便在应用程序中读取它。我试过以下几种,但似乎都不起作用。我的build.xml看起来像这样:

    <target name="build-dev" description="Package GWT app to web archive and deploy to web server">
   <echo message="Package GWT app to web archive" />
   <copy toDir="${basedir}/war/WEB-INF/lib">
      <fileset dir="${basedir}/lib" includes="*.jar" />
      <fileset dir="${gwt.home}" includes="*.jar" />
   </copy>
   <copy todir="${basedir}/war" file="${basedir}/src/etc/dev/GroupQuoteUI.properties" />
   <war basedir="${war.dir}" destfile="${deploy.dir}/${app.name}.war" webxml="${webinf.dir}/web.xml">
      <webinf dir="${webinf.dir}/">
         <include name="*." />
         <exclude name="**/web.xml" />
      </webinf>
      <classes dir="${basedir}/src/etc/dev/" includes="*.properties" />
   </war>
</target>

我试过使用:

  1. 在"webinf"标记中包含name="${war.dir}/GroupQuoteUI.properties",但它不起作用。

  2. 标记中还包括="${war.dir}/GroupQuoteUI.properties"。

  3. 还有这个内部的"webinf"文件夹再次:

    "zipfileset dir="${basedir}/war/"includes="GroupQuoteUI.properties"fullpath="${webinf.dir}/GroupQuoteUI.properties"

但这在构建过程中给出了一个错误,说明"不能将src-dir放在一起"。

那么我该怎么做才能将这个文件包含在war的WEB-INF目录中呢。包括所有其他目录和web.xml文件。

您无法通过访问打包到war或jar中的文件

new FileInputStream()

相反,您可以执行以下操作:

this.getClass().getResourceAsStream(filename)

这将从类路径加载一个资源(您的属性文件),因此它将读取war档案中的文件。它通过使用相同的ClasseLoader来实现这一点,该ClasseLLoader已用于加载属于this.getClass()的类

在这里你可以找到一个例子:如何在Java 中真正从类路径读取文本文件

相关内容

  • 没有找到相关文章

最新更新