Properties 带有Weblogic的外部属性文件
我正在寻找将要部署在Weblogic 10.3服务器上的应用程序使用外部属性文件的最佳方法。我在网站上读了很多文章,但我不想硬编码属性文件的路径,也不想把文件放在domains/mydomain文件夹中 在部署应用程序时,是否有一种动态方法来执行此操作?属性文件也会安装在部署文件夹下,并从中读取 非常感谢方法#1 更新服务器启动脚本,将下面的系统变量传递给JVM(下面是Windows操作系统上的示例) 使用这个指向配置目录的变量,从那里读取配置。您需要在要部署应用程序的每台服务器上进行此设置。方法#2 使用Weblogic共享库 遵循以下步骤Properties 带有Weblogic的外部属性文件,properties,weblogic,weblogic-10.x,Properties,Weblogic,Weblogic 10.x,我正在寻找将要部署在Weblogic 10.3服务器上的应用程序使用外部属性文件的最佳方法。我在网站上读了很多文章,但我不想硬编码属性文件的路径,也不想把文件放在domains/mydomain文件夹中 在部署应用程序时,是否有一种动态方法来执行此操作?属性文件也会安装在部署文件夹下,并从中读取 非常感谢方法#1 更新服务器启动脚本,将下面的系统变量传递给JVM(下面是Windows操作系统上的示例) 使用这个指向配置目录的变量,从那里读取配置。您需要在要部署应用程序的每台服务器上进行此设置。方
- 在构建过程中,将所有配置打包为单独的JAR
- 将配置JAR部署为共享库
- 从您的EAR/WAR中参考上述共享库
- 部署EAR/WAR(配置将在类路径中提供)
Properties myAppProps = new Properties();
InputStream iostream =
Thread.currentThread().getContextClassLoader().getResourceAsStream("myCfg/myApp.properties");
myAppProps.load(iostream);
这是通过向应用程序添加类加载器来实现的,如文档中所述。最初配置可能看起来很乏味,但这是一项直接满足原始问题的功能,并且仅适用于该特定应用程序。当您说“我在网站上读了很多文章,但我不想硬编码属性文件的路径”时我想您是说不想在Java代码中硬编码它。如果是这样,请参见下文
答复如下:
有几种方法可以从weblogic类路径读取Java中的属性文件
一个(位于weblogic域中的属性文件):将属性文件放到域目录中。通过这种方式,属性文件会自动添加到weblogic类路径中,我们可以使用resourceAsStream从Java中读取
二(来自用户定义位置的属性文件):这种方法的优点是,属性文件可以位于JAR或EAR文件之外,并且可以方便地修改
package com.test;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertyFileExample {
private static Properties prop;
public static void myMethod() {
InputStream is = null;
try {
prop = new Properties();
String propFilePath = System.getProperty(“propFileLocation“);
InputStream iStream = PropertyFileExample.class.getClassLoader().getResourceAsStream(propFilePath);
prop.load(iStream);
prop.getProperty(“dbuser”);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在weblogic setDomainEnv(在bin下)中,我们需要将属性文件的位置作为-D参数传递给JAVA_选项
设置JAVA\u选项=%JAVA\u选项%-DpropFileLocation=/dev/file/properties/some.properties
希望有帮助 您可以在类路径上设置一个目录,并将自定义属性文件放在该文件夹/目录中。这样,整个目录以及属性文件都将位于类路径上。 在weblogic 10.3.x中设置类路径上的目录
- 在
文件夹中创建一个文件夹。示例%DOMAIN\u HOME%\config\
appConfig
- 将自定义属性文件(比如
)放在config.properties
目录/文件夹中appConfig
- 通过将
设置为%DOMAIN\u HOME%\config\appConfig
(此变量已在EXT\u POST\u classpath
文件中定义)变量,修改setdomainev.cmd
(Windows)以将setdomainev.cmd
包含在类路径中,如下所示:appConfig
set EXT_POST_CLASSPATH=%EXT_POST_CLASSPATH%;%DOMAIN_HOME%\config\appConfig
InputStream inputStream = Thread.currentThread ().getContextClassLoader().getResourceAsStream ("config.properties"); Properties prop = new Properties(); prop.load(inputStream); String value = prop.getProperty("key");
set EXT_POST_CLASSPATH=%EXT_POST_CLASSPATH%;%DOMAIN_HOME%\config\appConfig
InputStream inputStream = Thread.currentThread ().getContextClassLoader().getResourceAsStream ("config.properties");
Properties prop = new Properties();
prop.load(inputStream);
String value = prop.getProperty("key");
希望这有帮助。如何使用wlst/jython中的创建属性将配置JAR部署为脱机共享库?