因为特殊原因,需要把某些与应用部署环境相关的信息配置在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包
添加新评论0 条评论