说笨还嘴硬不肯不承认,看吧,读取queue用parse xml的方法多傻呀,万一web server不是jboss就得满处找配置文件了,而且文件名还被我很蠢地固化到了程序中(懒得再增加一个property文件)。
××××××××××××× 问题解决的分隔线 ×××××××××××××××
好了,这下终于用读取JNDI的方法解决了。
因为和queue进行连接的时候首先要做的一步是在context里根据jndi进行lookup,所以直接读取jndi的list即可得到包括queue在内的所有值。
剩下的就只是挑选出需要用的queue。
代码如下:
protected String[] getQueueListFromJNDI() throws ServletException {
Vector ql = new Vector(0);
int qlLength = 0;
try{
InitialContext ctx = new InitialContext();
NamingEnumeration en = ctx.list( "queue" );
while(en.hasMoreElements()) {
NameClassPair nc = (NameClassPair)en.nextElement();
ql.addElement(nc.getName());
qlLength ++;
}
ctx.close();
} catch(NamingException e) {
e.printStackTrace();
}
String[] queueList = new String[qlLength];
for(int i = 0; i < qlLength; i ++ ){
queueList[i] = (String)ql.elementAt(i);
}
return queueList;
}
编写+查阅API资料耗时2小时,而上次的xml解析耗时……8小时