[英]How to include a property file in WEB-INF folder of war
我正在使用ant構建我的網絡應用。 我試圖在源文件夾的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>
我試圖使用:
“ webinf”標記中的“ include name =“ $ {war.dir} /GroupQuoteUI.properties”,但沒有用。
標記內還包含=“ $ {war.dir} /GroupQuoteUI.properties”。
同樣在“ webinf”文件夾中:
“ zipfileset dir =” $ {basedir} / war /“ includes =” GroupQuoteUI.properties“ fullpath =” $ {webinf.dir} /GroupQuoteUI.properties“
但這在構建過程中給出了一個錯誤,指出“不能一起擁有src目錄”。
因此,我應該怎么做才能將此文件包含在戰爭的WEB-INF目錄中。 包括所有其他目錄和web.xml文件。
您無法通過以下方式訪問打包為war或jar的文件:
new FileInputStream()
相反,您可以執行以下操作:
this.getClass().getResourceAsStream(filename)
這將從類路徑中加載資源(您的屬性文件),因此它將在war歸檔中讀取該文件。 它使用與加載屬於this.getClass()的類相同的ClasseLoader來實現此目的。
在這里,您可以找到一個示例: 如何從Java中的類路徑真正讀取文本文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.