Websphere Console 9.0 - 在 websphere 控制台中指定应用程序特定文件路径的位置
Websphere Console 9.0 - where to specify Application specific files paths in websphere console
我们的 RHEL 8.3 OS 中安装了 Websphere 9.0 版。
现在,我已经部署了一个网络应用程序 - .war 文件,其中包含多个模块 - 网络服务、网络模块等。
此 war 已成功部署,我也能够启动它,同时转到 Websphere Enterprise Applications - AppName - START。
该应用程序开始时显示一条成功消息。
现在问题就摆在眼前了。我们的应用程序需要某个文件 bootstrap.properties
。
该文件有几个配置,如 jdbc 参数、jmx 端口、jms 配置、jvm 参数、日志记录路径等。
一旦此应用程序的 Web 模块在 <SERVER_IP>:9080/Context
url 上 运行,它就会在 GUI 上抛出错误,提示 Unable to locate bootstrap.properties
。
在代码层面分析,发现下面的代码抛出了这个错误:
private static Properties config;
private static final String CONFIG_ROOT = System.getProperty("bootstrap.system.propertiespath");
private static final String configFile = "bootstrap.properties";
private JMXConfig() {
}
public static String getConfigRoot() {
if (CONFIG_ROOT == null) {
System.err.println("Not able to locate bootstrap.properties. Please configure bootstrap.system.propertiespath property.");
throw new ConfigException("Unable to locate bootstrap.properties.");
} else {
return CONFIG_ROOT + File.separator;
}
}
我想知道我们在哪里可以指定 Websphere 控制台中的绝对路径,一旦加载应用程序,我们的 属性 文件就可以作为系统参数读取。
由于您正在使用 System.getProperty() 读取 属性,因此需要将其指定为 Java 系统 属性 传递到 JVM 中。您可以从 JVM 配置面板执行此操作,将其添加为 JVM 上的自定义 属性 或服务器通用 JVM 参数中的 -D 选项。
自定义 属性: https://www.ibm.com/docs/en/was/9.0.5?topic=jvm-java-virtual-machine-custom-properties
通用 JVM 参数:https://www.ibm.com/docs/en/was/9.0.5?topic=jvm-java-virtual-machine-settings(搜索“通用 JVM 参数”)
请注意,如果您使用自定义 属性,您只需将“名称”字段设置为“bootstrap.system.propertiespath”并将“值”设置为您需要的路径;如果您使用通用的 JVM 参数,您将添加一个结构为“-Dbootstrap.system.propertiespath=/path/to/file”的参数。
我们的 RHEL 8.3 OS 中安装了 Websphere 9.0 版。 现在,我已经部署了一个网络应用程序 - .war 文件,其中包含多个模块 - 网络服务、网络模块等。 此 war 已成功部署,我也能够启动它,同时转到 Websphere Enterprise Applications - AppName - START。 该应用程序开始时显示一条成功消息。
现在问题就摆在眼前了。我们的应用程序需要某个文件 bootstrap.properties
。
该文件有几个配置,如 jdbc 参数、jmx 端口、jms 配置、jvm 参数、日志记录路径等。
一旦此应用程序的 Web 模块在 <SERVER_IP>:9080/Context
url 上 运行,它就会在 GUI 上抛出错误,提示 Unable to locate bootstrap.properties
。
在代码层面分析,发现下面的代码抛出了这个错误:
private static Properties config;
private static final String CONFIG_ROOT = System.getProperty("bootstrap.system.propertiespath");
private static final String configFile = "bootstrap.properties";
private JMXConfig() {
}
public static String getConfigRoot() {
if (CONFIG_ROOT == null) {
System.err.println("Not able to locate bootstrap.properties. Please configure bootstrap.system.propertiespath property.");
throw new ConfigException("Unable to locate bootstrap.properties.");
} else {
return CONFIG_ROOT + File.separator;
}
}
我想知道我们在哪里可以指定 Websphere 控制台中的绝对路径,一旦加载应用程序,我们的 属性 文件就可以作为系统参数读取。
由于您正在使用 System.getProperty() 读取 属性,因此需要将其指定为 Java 系统 属性 传递到 JVM 中。您可以从 JVM 配置面板执行此操作,将其添加为 JVM 上的自定义 属性 或服务器通用 JVM 参数中的 -D 选项。
自定义 属性: https://www.ibm.com/docs/en/was/9.0.5?topic=jvm-java-virtual-machine-custom-properties
通用 JVM 参数:https://www.ibm.com/docs/en/was/9.0.5?topic=jvm-java-virtual-machine-settings(搜索“通用 JVM 参数”)
请注意,如果您使用自定义 属性,您只需将“名称”字段设置为“bootstrap.system.propertiespath”并将“值”设置为您需要的路径;如果您使用通用的 JVM 参数,您将添加一个结构为“-Dbootstrap.system.propertiespath=/path/to/file”的参数。