【问题标题】:Accessing Websphere 6.1 variables访问 Websphere 6.1 变量
【发布时间】:2010-08-10 14:23:58
【问题描述】:

我想从 java 类中获取 Websphere 变量 APP_INSTALL_ROOT 的值。如何做到这一点。

【问题讨论】:

    标签: java variables websphere


    【解决方案1】:

    【讨论】:

    • 感谢您链接到我的博客!
    • 我得到了被 ${} 包围的同一个变量。未配置安全性。有什么提示吗?
    【解决方案2】:

    来自 IBM 信息中心:

    您可以使用 WebSphere 变量来 为任何字符串提供设置 数据类型属性是 包含在产品配置中 文件。

    因为应用程序 无法直接访问 WebSphere 变量,如果您定义一个 WebSphere 应用程序内部的变量,一个 错误消息,例如“未知 变量”返回。如果你必须 引用 WebSphere 变量 在应用程序中,包括 应用程序中的以下方法 展开使用 WebSphere 变量:

    private String expandVariable(String s) throws
    javax.management.JMException {  
    com.ibm.websphere.management.AdminService as = 
    com.ibm.websphere.management.AdminServiceFactory.getAdminService 
    ();  
    
    String server = as.getProcessName();  
    
    java.util.Set result = as.queryNames(new javax.management.ObjectName("*:*,type=AdminOperations,process=" 
    + server), null);  
    
    return (String)as.invoke((javax.management.ObjectName) 
    result.iterator().next(),"expandVariable",new Object[] 
    {"${"+s+"}"}, new String[] {"java.lang.String"});
    

    【讨论】:

    • 我得到了被 ${} 包围的同一个变量。未配置安全性。有什么提示吗?
    • 如果变量在集群范围内,字符串 "":,type=AdminOperations,process=" 是否应该更改?
    【解决方案3】:

    在您的应用程序中获取 Websphere 变量值的另一种方法是在 WAS 控制台中定义一个指向您的 Websphere 变量的常规环境变量:

    1. 定义您的 websphere 变量 someVariable = someValue
    2. 转到(类似于)服务器 -> 服务器类型 -> Websphere 应用程序 服务器 -> YOUR_SERVER -> Java 和进程管理 -> 进程 定义 -> Java 虚拟机 -> Custmo 属性
    3. 定义一个新变量 someVariable = ${someVariable}

    现在以 System.getProperty("someVariable") 访问变量

    【讨论】:

    • 参数值仅在启动时加载,因此我们必须重新启动 WebSphere 以更新变量值。
    • 将值设置为 JVM 的一部分可以正常工作。但是,最好使用 WebSphere 变量。 “跨服务器、节点、集群或单元的变量范围”。
    【解决方案4】:

    对不起,我不能写评论。

    我得到了被 ${} 包围的同一个变量。未配置安全性。有什么提示吗? – xain

    您必须在创建变量后重新启动服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多