先贴一下代码:
private LdapContext getContext() throws NamingException {
LdapCtxFactory lcf = new com.sun.jndi.ldap.LdapCtxFactory();
return (LdapContext) lcf.getInitialContext(lc.getSysProperties());
}
public String getLdapAttrFromDn(String strDn,String strattr)
{
SearchControls constraints = new SearchControls();
LdapContext context = null;
Attributes attrs = null;
String strmail = "";
try{
context = getContext();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
String myFilter = "(&(objectclass=InetOrgPerson)(uid=" + strDn + "))";;
NamingEnumeration results = (NamingEnumeration) context.search("dc=unicom",
myFilter, constraints);
if (results != null && results.hasMore()) {
SearchResult si = (SearchResult)results.next();
attrs = si.getAttributes();
Attribute arr = attrs.get(strattr);
if(arr != null){
strmail = (String)arr.get();
strmail = strmail.substring(0, strmail.indexOf("@"));
}
}
}catch(Exception ex){
//System.out.println("======search getLdapAttrFromDn Ldap==ex====================="+ex);
}
finally
{
if (context != null) {
try {
context.close();
context = null;
} catch (NamingException e) {
System.out.println(e.getMessage());
} }
}
return strmail;
}我在getLdapAttrFromDn里面已经关闭了连接,但是压力测试时,发现连接并没有释放。各位高手,请指导一下~~谢谢了
private LdapContext getContext() throws NamingException {
LdapCtxFactory lcf = new com.sun.jndi.ldap.LdapCtxFactory();
return (LdapContext) lcf.getInitialContext(lc.getSysProperties());
}
public String getLdapAttrFromDn(String strDn,String strattr)
{
SearchControls constraints = new SearchControls();
LdapContext context = null;
Attributes attrs = null;
String strmail = "";
try{
context = getContext();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
String myFilter = "(&(objectclass=InetOrgPerson)(uid=" + strDn + "))";;
NamingEnumeration results = (NamingEnumeration) context.search("dc=unicom",
myFilter, constraints);
if (results != null && results.hasMore()) {
SearchResult si = (SearchResult)results.next();
attrs = si.getAttributes();
Attribute arr = attrs.get(strattr);
if(arr != null){
strmail = (String)arr.get();
strmail = strmail.substring(0, strmail.indexOf("@"));
}
}
}catch(Exception ex){
//System.out.println("======search getLdapAttrFromDn Ldap==ex====================="+ex);
}
finally
{
if (context != null) {
try {
context.close();
context = null;
} catch (NamingException e) {
System.out.println(e.getMessage());
} }
}
return strmail;
}我在getLdapAttrFromDn里面已经关闭了连接,但是压力测试时,发现连接并没有释放。各位高手,请指导一下~~谢谢了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货