从服务器位置读取属性文件
Reading properties file from server location
如何从服务器上的某个位置读取文件?
我可以使用以下方法从 /WEB_INF/classes 成功读取:
InputStream systemParamInputStream = getClass().getClassLoader().getResourceAsStream("ldap.properties");
但是,我希望将此文件放在服务器上的某个位置,以便支持人员在应用程序投入生产时对其进行配置。
我的自由配置文件 server.xml 位于:C:\eclipse\runtime\usr\servers\tmpServer。
这很好,因为那里的任何其他地方确实如此。
我正在使用 java.util.Properties:
Properties props = new Properties();
props.load(new FileReader("path to your file"));
"WEB-INF/classes" 是类路径的一部分。
通过将另一个文件夹添加到服务器的类路径,您可以继续读取文件。在该文件夹中,您将拥有配置文件。
但您也可以像这样直接访问文件:
InputStream systemParamInputStream=new FileInputStream(filePath);
诀窍是找到一种干净的方法来配置配置文件 filePath
,因为硬编码并不好。这是一个选项:
new FileInputStream(System.getProperty("filePath","C:\eclipse\runtime\usr\servers\tmpServer"));
你会发送 filePath
作为程序参数 -DfilePath=c:\
This thread 展示了不同的方法。
我尝试成功的方法是在server.xml
中指定一个文件夹作为库,这样它就可以在类路径中使用了:
<library id="configResources">
<folder="${server.config.dir}/config" />
</library>
<application location="foo.war">
<classloader privateLibraryRef="configResources" />
</application>
关于此方法的两个小警告:
- 需要 8.5.5
- 由于使用
folder
元素 (cvc-complex-type.2.4.a: Invalid content was found starting with element 'folder'. One of '{fileset}' is expected.
),可能会在 Eclipse 中导致 server.xml
XML 验证错误。我尝试使用 fileset
,但无法正常工作。
如何从服务器上的某个位置读取文件?
我可以使用以下方法从 /WEB_INF/classes 成功读取:
InputStream systemParamInputStream = getClass().getClassLoader().getResourceAsStream("ldap.properties");
但是,我希望将此文件放在服务器上的某个位置,以便支持人员在应用程序投入生产时对其进行配置。
我的自由配置文件 server.xml 位于:C:\eclipse\runtime\usr\servers\tmpServer。 这很好,因为那里的任何其他地方确实如此。
我正在使用 java.util.Properties:
Properties props = new Properties();
props.load(new FileReader("path to your file"));
"WEB-INF/classes" 是类路径的一部分。
通过将另一个文件夹添加到服务器的类路径,您可以继续读取文件。在该文件夹中,您将拥有配置文件。
但您也可以像这样直接访问文件:
InputStream systemParamInputStream=new FileInputStream(filePath);
诀窍是找到一种干净的方法来配置配置文件 filePath
,因为硬编码并不好。这是一个选项:
new FileInputStream(System.getProperty("filePath","C:\eclipse\runtime\usr\servers\tmpServer"));
你会发送 filePath
作为程序参数 -DfilePath=c:\
This thread 展示了不同的方法。
我尝试成功的方法是在server.xml
中指定一个文件夹作为库,这样它就可以在类路径中使用了:
<library id="configResources">
<folder="${server.config.dir}/config" />
</library>
<application location="foo.war">
<classloader privateLibraryRef="configResources" />
</application>
关于此方法的两个小警告:
- 需要 8.5.5
- 由于使用
folder
元素 (cvc-complex-type.2.4.a: Invalid content was found starting with element 'folder'. One of '{fileset}' is expected.
),可能会在 Eclipse 中导致server.xml
XML 验证错误。我尝试使用fileset
,但无法正常工作。