java应用程序级变量_java – Websphere应用程序级环境变量

问题1

Is it possible to set the DocStorageLocation differently for both

applications?

我不认为这是可能的. Websphere的环境变量意味着服务器本身使用.变量只有三个可能的范围,即服务器,集群和节点.

例如,server1上的ORACLE_JDBC_DRIVER_PATH环境变量,node1作用域可用于node1上的JDBC提供程序(classPath = ${ORACLE_JDBC_DRIVER_PATH} /ojdbc14.jar).

问题是:“为什么我不能只为我的应用程序设置不同的值”?但我的猜测是,只要启动服务器,集群和节点,为已部署的应用程序覆盖此值就没有意义.

虽然我认为这是不可能的,但我仍然尝试过.但我没有设法覆盖为websphere服务器设置的环境变量.

问题2

Alternatively, is there another way of configuring multiple

applications running on the same server?

环境进入

您可以在web.xml部署描述符中添加一个环境条目,这是您可以查找的变量.

DocStorageLocation

java.lang.String

C:/DocStorage

然后测试,在java类中查找这个变量:

//TEST

Object l_test = null;

try {

Context l_ctx = new InitialContext();

l_test = l_ctx.lookup("java:comp/env/DocStorageLocation");

} catch (NamingException e1) {

// TODO

e1.printStackTrace();

}

.properties文件的URL ressource

您可以创建URL资源.它将链接到本地​​主机或任​​何服务器上的.properties文件集,因此可以根据环境将每个属性设置为不同的值.

例如,JNDI名称url / environmentJndiName在server1上具有值file:///server1/environment.properties,在server2上具有file:///server2/environment.properties.

然后在服务器1上,您可以在environment.properties文件中设置docStorageLocation = value1,在server2上设置docStorageLocation = value2.

在部署描述符web.xml中,ressource的引用将是相同的.您不必在java源代码中更改此引用:

url/environment

java.net.URL

Application

Shareable

然后使用此ressource来读取属性.

try {

Context l_ctx = new InitialContext();

URL l_url = (URL) l_ctx.lookup("java:comp/env/url/environment");

// New properties

Properties l_properties = new Properties();

// Load properties

this.loadProps(l_properties, l_url.getPath());

} catch (NamingException e1) {

// TODO

e1.printStackTrace();

} catch (IOException e) {

// TODO Bloc catch auto-généré

e.printStackTrace();

}

...

private void loadProps(final Properties p_properties, final String p_fileLocation)

throws IOException

{

// Open stream

BufferedInputStream l_is = new BufferedInputStream(

new FileInputStream(

new File(p_fileLocation)));

p_properties.load(l_is);

// Close stream

l_is.close();

}

您需要将web.xml的ressource引用url / environment绑定到在websphere服务器上为此ressource设置的JNDI名称url / environmentJndiName.使用websphere修改ibm-web-bnd.xml文件,使用glassfish修改sun-web.xml文件等.

谢谢

如果有更好的解决方案,或者它没有回答问题,请告诉我.我还在学习,但我一直在使用websphere一段时间 – 即使我更喜欢其他解决方案.谢谢, @ .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值