我能够在我的本地自由websphere应用服务器中运行代码,但是当我生成一个War然后将其部署到websphere服务器中时,我无法使属性文件正常工作。
我认为错误发生在build.xml中,其中生成的路径是错误的,因此不会读取属性文件。我正在使用ant build
下面是我的build.xml(属性文件名是DBInfo.properties)
<!DOCTYPE xml>
<project name="WS" basedir="." default="build" >
<property name="src.dir" value ="src" />
<property name="web.dir" value ="build"/>
<property name="build.dir" value="${web.dir}/classes" />
<property name="webcontent" location = "WebContent" />
<path id="lib">
<fileset dir="${web.dir}/WEB-INF/lib ">
<include name="**/*.jar" />
</fileset>
<pathelement path="${build.dir}"/>
</path>
<target name="init" >
<copy toDir="${web.dir}" >
<fileset file="${webcontent}/WEB-INF">
<include name="**" />
</fileset>
</copy>
</target>
<target name="build">
<mkdir dir="${build.dir} />
<javac includeantruntime="false" destdir="${build.dir}" source="1.8" target="1.8">
<src path="${src.dir}"/>
<classpath refid ="lib"/>
</javac>
<copy file="${src.dir}/DBInfo.properties" tofile="${web.dir}/classes/DBinfo.properties" overwrite="true" />
</target>
<target name="war" depends="build" >
<war destfile="WS.war" webxml="${web.dir}/WEB-INF/web.xml" >
<fileset dir= "${web.dir}" >
<include name = "**/*.*"/>
<exclude name ="**/${build.dir}/**" />
</fileset>
<class dir="${build.dir}" />
</war>
</target>
下面是它使用属性文件的类。它适用于本地服务器,但在部署战争时它无法找到它。
public class ConnectionManager {
...definable attribute
public static Connection getConnection() {
Properties props = new Properties();
Connection con = null;
try {
InputStream path = ConnectionManager.class.getClassLoader().getResourceAsStream("DBInfo.properties");
props.load(path);
...
文件层次结构如下所示 构建后
WS
|-java resources
| |-src
| |-DBInfo.properties
|-Libraries
|-build
| |-classes
| | |-com ..
| | |-DBInfo.properties
| |-css
| |-META-INF
| |-WEB-INF
|-WebContent
有谁知道为什么我在生成war并在服务器上部署之后无法获取属性文件? (的Websphere)