星期四 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中制值,把传参数值传进程序。
呵,希望对你有用!!
Posted at 12:21下午 六月 12, 2008 by txswei in 技术(Linux&java&oracle) |