关注网络 体验生活

« 解答:如何查询一台服务器上绑定了多少个域... | Main | 预测:2013年全球手机广告收入将达10... »

http://blog.matrix.org.cn/txswei/date/20080612 星期四 2008年06月12日

通过在tomcat中设置全局变量,应用于程序集群。。

1.. server.xml中设置如下:
<Context path="/bb" docBase="vcmplat" debug="0" reloadable="true" crossContext="true">
 <Environment name="simpleValue" type="java.lang.String" value="Gz_esyes_cor"/>
 <Environment name="testget" type="java.lang.String" value="tomcat20061018888"/>
</Context>


2.. 写一个java类,通过jndi读出变量的值,可放入一个静态变量中,供其它程序调用
public class EnviParmGet {
 private static String testget = "";
 static {
  try {
   Context initContext = new InitialContext();       
   Context envContext = (Context) initContext.lookup("java:comp/env");
   //通过这里取值,可放入其他变量中供程序使用
   String getValue = (String)(envContext.lookup("simpleValue"));
   testget = (String)(envContext.lookup("testget"));
   System.out.println("::EnviParmGet - getValue: "+getValue);
   
   //
   NamingEnumeration ne =initContext.listBindings("java:comp/env");
   while (ne.hasMore()) {
    Binding ncp = (Binding)ne.next();
    String objName = ncp.getName();
    Object objObj = ncp.getObject();
    System.out.println("::EnviParmGet - objName "+objName+"---objObj:"+objObj);
   }
   


  } catch (NamingException e) {
   e.printStackTrace();
   System.out.println("无法从JNDI 取值,请检查conf/server.xml中是否配置正确");
  }
 }


 public static String getName(){
  return "test is I   ----" + testget;
 }
}


用途:
A..apache+tomcat集群时,几个tomcat共享一个webapp,变化的值通过tomcat容器传进去,
可通过配制server.xm中设置值,再通过程序中读出来,以供不同tomcat容器环境使用。


B..也可在server.xml中制值,把传参数值传进程序。


呵,希望对你有用!!

评论:

发表一条评论:
该日志评论功能被禁用了。

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.