WebSphere環境変数をアプリケーションで読み込む


特別な理由で、Was Serverにアプリケーション導入環境に関する情報をいくつか配置する必要がありますが、JavaアプリケーションでWebSphereの環境変数情報を取得できますか?資料を検索した後、方法を見つけて、解決コードは以下の通りです.


public class WasVariableUtil {
	public static String loadVariable(String variableString) throws Throwable {
		String result = null;
		AdminService adminService = AdminServiceFactory.getAdminService();
		ObjectName adminObjectQuery = new ObjectName("WebSphere:*,type=AdminOperations");
		Set objectNames = adminService.queryNames(adminObjectQuery, null);
		if (!objectNames.isEmpty()) {
			ObjectName adminObjectName = (ObjectName) objectNames.iterator().next();
			String operationName = "expandVariable";
			String signature[] = { String.class.getName() };
			String params[] = { variableString };
			Object retVal = adminService.invoke(adminObjectName, operationName, params, signature);
			result = String.valueOf(retVal);
		}
		return result;
	}

	public static void main(String[] args) {

		String result = null;
		try {
			result = WasVariableUtil.loadVariable("${WAS_INSTALL_ROOT}");
		} catch (Throwable e) {
			e.printStackTrace();
			result = "Default Value";
		}
		System.out.println(result);
	}
}



以上がコード実装である.また、Was Clientのjarにも依存し、名前は:com.ibm.ws.webservices.thinclient_6.1.0.JAr、WebSphereのインストールディレクトリ/opt/IBM/WebSphere/AppServer/runtimes(Linux環境)でこのJarパッケージを見つけることができます