<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 42  文章 - 71  trackbacks - 0
    <2012年2月>
    2930311234
    567891011
    12131415161718
    19202122232425
    26272829123
    45678910

    常用鏈接

    留言簿

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    同樣的一段代碼,在我的機(jī)器上是OK的,在測(cè)試環(huán)境也是OK的。就是到了新來(lái)的同事機(jī)器上,那叫一個(gè)慢啊。輸入用戶名口令,登錄,需要等待1分鐘……

    初步判斷肯定是LdapTemplate做操作的時(shí)候花費(fèi)了很長(zhǎng)的時(shí)間。LdapTemplate的配置如下:

    <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
            <property name="url" value="ldap://192.168.1.77:389/dc=cn,dc=earth"/>
            <property name="userDn" value="cn=root"/>
            <property name="password" value="tjmc123"/>
    </bean>
    <bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
            <property name="contextSource" ref="contextSource"/>
    </bean>
        
     

    但是還是看不出問(wèn)題。實(shí)在是百思不得其解了,只好查看Thread dump了,在這里花費(fèi)了很長(zhǎng)的時(shí)間:

    "qtp22172629-23" prio=5 tid=0x1741d1d0 nid=0x1760 runnable [0x17f9e000..0x17f9fd68]
            at java.net.Inet4AddressImpl.getHostByAddr(Native Method)
            at java.net.InetAddress$1.getHostByAddr(InetAddress.java:842)
            at java.net.InetAddress.getHostFromNameService(InetAddress.java:532)
            at java.net.InetAddress.getHostName(InetAddress.java:475)
            at java.net.InetAddress.getHostName(InetAddress.java:447)
            at java.net.InetSocketAddress.getHostName(InetSocketAddress.java:210)
            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:341)
            at java.net.Socket.connect(Socket.java:507)
            at java.net.Socket.connect(Socket.java:457)
            at java.net.Socket.(Socket.java:365)
            at java.net.Socket.(Socket.java:178)
            at com.sun.jndi.ldap.Connection.createSocket(Connection.java:346)
    ......

    看起來(lái),是在嘗試解析主機(jī)域名/地址信息。可是我配置的是IP地址啊,為啥還去解析?先不管這些了,先在本地hosts文件中配置一下LDAP服務(wù)器的別名吧。配置完本地hosts文件之后,測(cè)試,一切OK了。

    回想起來(lái),因?yàn)槲业臋C(jī)器和測(cè)試環(huán)境應(yīng)用主機(jī)上都有LDAP服務(wù)器的別名配置,所以沒(méi)有出現(xiàn)連接慢的問(wèn)題,而新來(lái)的同事的hosts文件是干干凈凈的,所以,杯具了……

    //------------------------------------

    分析了Spring-ldap的代碼以及關(guān)鍵的類(lèi)InetSocketAddress,過(guò)程大概是這樣的:

    spring-ldap的LdapContextSource會(huì)把設(shè)置的屬性u(píng)rl的值中,ldap://和端口之間的字符串當(dāng)做主機(jī)名(注意,是當(dāng)做主機(jī)名,是String對(duì)象,不是地址)傳入給LdapClient去建立和LDAP服務(wù)器之間的連接。而LdapClient通過(guò)層層調(diào)用之后,最終通過(guò)構(gòu)造器InetSocketAddress(String hostname, int port) 創(chuàng)建了InetSocketAddress對(duì)象。

    在JDK的文檔上關(guān)于InetSocketAddress(String hostname, int port)有如下描述:

    Creates a socket address from a hostname and a port number.
    An attempt will be made to resolve the hostname into an InetAddress. If that attempt fails, the address will be flagged as unresolved.

    無(wú)需再解釋什么了……

    回頭想想,介紹spring-ldap的文章也好,示例代碼也好,基本上都是在url上寫(xiě)域名,很少見(jiàn)寫(xiě)地址的,看來(lái),spring-ldap是鄙視IP地址的方式訪問(wèn)LDAP服務(wù)器的了。

    環(huán)境列表:

    Sun HotSpot JDK 1.5.0_05

    Spring-ldap: 1.3.0

    Spring: 3.0.4

     

    Technorati 標(biāo)簽: ,,
    posted on 2012-02-29 16:41 YODA 閱讀(4035) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 一级一级一级毛片免费毛片| 一个人看的www在线观看免费| 亚洲国产第一页www| 91在线视频免费看| 黄色a级片免费看| 亚洲国产精品久久久久网站 | 亚洲日韩一区精品射精| 国产L精品国产亚洲区久久| 每天更新的免费av片在线观看| 亚洲精品国产摄像头| 亚洲VA中文字幕无码毛片| 免费看a级黄色片| 日韩精品无码一区二区三区免费 | 亚洲国产最大av| 国产成人精品日本亚洲专区61| 国产成人精品免费视频网页大全| 视频免费1区二区三区| 亚洲免费观看在线视频| 综合亚洲伊人午夜网 | 亚洲精品综合久久中文字幕| 国产成人一区二区三区免费视频 | 国产精品免费视频一区| 一级毛片在线观看免费| 黄色一级视频免费观看| 亚洲午夜久久久精品电影院| 亚洲精品无码高潮喷水在线| 日韩精品视频免费网址| 99精品视频在线免费观看| 一区二区免费国产在线观看 | 亚洲欧洲免费视频| 亚洲日本一区二区三区在线不卡| 一个人看www在线高清免费看| 久草免费福利资源站| 国产精品免费久久| 毛片亚洲AV无码精品国产午夜| 亚洲精品国产成人中文| 亚洲性猛交XXXX| 亚洲AV无码一区二三区| 国产精品无码免费视频二三区 | 亚洲色婷婷六月亚洲婷婷6月| 好爽好紧好大的免费视频国产|