锘??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕亚洲一区二区三区,亚洲a级片在线观看,亚洲AV无码一区东京热久久http://www.tkk7.com/hoojo/category/49166.html瀛︿範(fàn)鍦ㄤ簬縐瘡錛氭淮姘村彲浠ョ煶絀匡紒瀛﹁屼笉鎬濆垯緗旓紝鎬濊屼笉瀛﹀垯孌嗭紒 zh-cnTue, 31 Jul 2012 12:23:39 GMTTue, 31 Jul 2012 12:23:39 GMT60縐誨姩搴旂敤錛堟墜鏈哄簲鐢級(jí)寮鍙慖M鑱婂ぉ紼嬪簭瑙e喅鏂規(guī)http://www.tkk7.com/hoojo/archive/2012/07/31/384441.htmlhoojohoojoTue, 31 Jul 2012 07:16:00 GMThttp://www.tkk7.com/hoojo/archive/2012/07/31/384441.htmlhttp://www.tkk7.com/hoojo/comments/384441.htmlhttp://www.tkk7.com/hoojo/archive/2012/07/31/384441.html#Feedback0http://www.tkk7.com/hoojo/comments/commentRss/384441.htmlhttp://www.tkk7.com/hoojo/services/trackbacks/384441.html榪欎釜瑙e喅鏂規(guī)硶宸茬粡瀹氬埗涓嬫潵寰堜箙浜?jiǎn)锛屼笂涓孌墊椂闂存瘮杈冨繖錛屾病鏈夋椂闂存暣榪欎簺涓滆タ銆傛渶榪戠◢寰ソ浜涳紝涓嶆庝箞鍔犵彮銆傛墍浠ユ娊絀烘葷粨涓嬶紝鍚屾椂涔熷垎浜粰澶у錛屼篃綆楁槸緇欏ぇ瀹朵竴涓熼壌鍚э紒鎴栬榪欏茍涓嶆槸鏈濂界殑瑙e喅鏂規(guī)錛屼絾鍙鑳芥弧瓚沖綋鍓嶉渶姹傜殑鏈濂芥柟妗堜篃綆楁槸鏈濂界殑瑙e喅鏂規(guī)錛岃皝璇翠笉鏄憿錛丱(∩_∩)O~

 

鎴戜滑閲囩敤鐨勬柟妗堝涓嬶細(xì)

鍏堢湅鍥?/p>

xmpp-server-client

涓婂浘鐨勬祦紼嬪ぇ鑷翠笂鏄繖鏍風(fēng)殑錛?

鎵嬫満绔悜PC绔彂閫佽亰澶╁唴瀹?

1銆佹墜鏈虹紼嬪簭閫氳繃Socket榪炴帴鏈嶅姟鍣ㄧ鐨凷erverSocket

2銆佺劧鍚庢湇鍔″櫒绔牴鎹墜鏈篗obile瀹㈡埛绔彂閫佽繃鏉ョ粺涓瑙勮寖鐨勬姤鏂囨垨鑱婂ぉ鍐呭錛岃繘琛岃В鏋?

3銆佺劧鍚庡皢瑙f瀽鐨勫唴瀹癸紝鍐嶇敤smack妗嗘灦杞彂鍒皁penfire鏈嶅姟鍣?

4銆佹渶鍚庣敱openfire鏈嶅姟鍣ㄥ悜瀹㈡埛绔紙BS銆丆S銆丳honeClient錛夌▼搴忓彂閫佽亰澶╀俊鎭傝繖閲岀殑瀹㈡埛绔彲浠ユ槸pc涓婄殑嫻忚鍣紝pc涓婄殑妗岄潰搴旂敤錛屾墜鏈哄簲鐢ㄧ瓑

5銆丳C瀹㈡埛绔疊S紼嬪簭錛堢敤http bind鏂瑰紡鐩戝惉錛夌殑闀胯繛鎺ョ洃鍚埌openfire鏈嶅姟鍣ㄥ彂閫佽繃鏉ョ殑鏁版嵁錛岀洿鎺ュ湪欏甸潰涓樉紺?/p>

 

鍚屾牱錛孭C瀹㈡埛绔悜鎵嬫満绔彂閫佽亰澶╁唴瀹?

1銆丳C瀹㈡埛绔紙BS錛夊彲浠ョ洿鎺ョ敤http bind錛坸mpp 鎻愪緵鐨刪ttp璇鋒眰鐨勯暱榪炴帴鏂瑰紡錛夌洿鎺ュ悜openfire鏈嶅姟鍣ㄥ彂閫佽亰澶╂暟鎹紱

2銆佺劧鍚巓penfire鏈嶅姟鍣ㄦ帴鏀跺埌鑱婂ぉ鍐呭鐨勬椂鍊欙紝榪欐椂鍊檚ocket鏈嶅姟鍣ㄤ腑鐨剆mack妗嗘灦涓湁涓涓亰澶╁唴瀹圭殑鐩戝惉鍣?

3銆佺洃鍚埌PC绔悜openfire鍙戦佺殑鍐呭鍚庯紝浼?xì)鐢╯ocket鐨勬祦鍚戞墜鏈虹鍙戦佹垜浠畾涔夊ソ鐨勬姤鏂囨垨鏄亰澶╁唴瀹?

4銆佹墜鏈虹鐨剆ocket浼?xì)涓嶅仠鐨勮疆璇㈠Q堝彲浠ユā鎷熷績(jī)璺沖紡闀胯繛鎺ョ殑鏂瑰紡錛夛紝鍒ゆ柇鏄惁鏈夋秷鎭埌杈撅紝濡傛灉鏈夊垯鏄劇ず

 

鑰屾櫘閫氱殑鑱婂ぉ紼嬪簭鐨勬祦紼嬪垯鏄鎴風(fēng)鍙戦佷俊鎭埌openfire鏈嶅姟鍣紝openfire鏈嶅姟鍣ㄥ啀灝嗘秷鎭漿鍙戠粰鍏朵粬瀹㈡埛绔備粬浠渷鍘諱簡(jiǎn)socket鏈嶅姟鍣ㄨ繖閮ㄥ垎錛岄偅鎴戜滑涓轟粈涔堣鍔犱笂socket鏈嶅姟鍣ㄨ繖閮ㄥ垎鍛紵

鎴戜滑榪欐牱鍋氫篃鏄湁鑷繁鐨勯亾鐞嗙殑錛?

棣栧厛錛屽鏋滆鎵嬫満绔嚜宸卞疄鐜板悜openfire鏈嶅姟鍣ㄥ彂閫佺▼搴忕殑浠g爜錛岄偅宸ヤ綔閲忔槸鐩稿綋澶х殑銆傚洜涓烘瘡涓墜鏈哄鉤鍙頒嬌鐢ㄧ殑璇█閮戒笉鍚岋紝姣忎釜騫沖彴閮介渶瑕佸疄鐜板悜openfire鏈嶅姟鍣ㄥ彂閫佽亰澶╀俊鎭殑鎶ユ枃銆傝繖鍏跺疄灝辨槸鍦ㄥ仛閲嶅鐨勫伐浣滐紝鑰屼笖姣忎釜騫沖彴瀹炵幇鍚戞墜鏈虹鍙戦佹姤鏂囦俊鎭殑鎶鏈細(xì)璁╂瘡涓墜鏈虹鐨勫紑鍙戜漢鍛橀兘瑕佸浼?xì)涓濂楀拰openfire浜や簰鐨勪唬鐮併傝繖鍔垮繀浼?xì)閲嶅宸ヤ綔銆侀噸澶嶇浉鍚屼笟鍔$殑浠g爜銆傛墍浠ワ紝鎶婅繖浜涗唬鐮佹斁鍦ㄤ竴涓猼cp/ip鐨剆ocket涓漿鏈嶅姟鍣ㄨ繘琛岀粺涓鍙戦侊紝榪欎篃鏄湁濂藉鐨勩?

鍏舵錛屾妸鎵浠ュ彂閫佹秷鎭湪鎶ユ枃鍦╯ocket鏈嶅姟鍣ㄥ畬鎴愶紝鍙互瀵逛笟鍔¤繘琛屼竴涓粺涓鐨勫鐞嗐佹秷鎭繃婊ゃ?/p>

 

鎵嬫満绔鍚﹀喅鐨勮В鍐蟲(chóng)柟妗堬紝渚涘弬鑰?/font>

鎵嬫満绔敤http闀胯繛鎺ョ殑鏂瑰紡錛岃繖涓槸涓嶈鐨?/p>

鍏朵竴銆佹墜鏈虹殑縐誨姩緗戠粶涓嶇ǔ瀹氾紝闀胯繛鎺ヤ細(xì)緇忓父鏂帀錛屽綋鐒朵綘鍙互鑷姩榪涜閲嶈繛

鍏朵簩銆侀暱榪炴帴涓鐩磋繛鎺ュ湪鏈嶅姟鍣ㄤ笂錛屽崰鐢ㄦ湇鍔″櫒璧勬簮銆傚綋鐒朵綘鍙互浣跨敤蹇?jī)锜╁紡闀繕q炴帴鎴栨槸杞鏂瑰紡

鍏朵笁銆佹墜鏈虹涓鐩磋繛鎺ユ湇鍔″櫒浼?xì)鋴社敤鎵嬫満绔敤鎴风殑缃懢l滃甫瀹芥祦閲忥紙嫻侀噺涓嶆槸鍏嶈垂鐨勶紝瀹㈡埛浼?xì)鎬庝箞鎯籌級(jí)

鍏跺洓銆佹墜鏈虹涓鐩磋繛鐫鏈嶅姟鍣紝瀵規(guī)墜鏈虹殑鐢?shù)閲忎篃鏈夋秷鑰楋紙鐜板湪鏅鴻兘鏈鴻В鍐崇數(shù)閲忎篃鏄竴涓棶棰橈級(jí)



hoojo 2012-07-31 15:16 鍙戣〃璇勮
]]>
Spring鏁村悎CXF錛屽彂甯僐SETful 椋庢牸WebServicehttp://www.tkk7.com/hoojo/archive/2012/07/23/383780.htmlhoojohoojoMon, 23 Jul 2012 08:58:00 GMThttp://www.tkk7.com/hoojo/archive/2012/07/23/383780.htmlhttp://www.tkk7.com/hoojo/comments/383780.htmlhttp://www.tkk7.com/hoojo/archive/2012/07/23/383780.html#Feedback0http://www.tkk7.com/hoojo/comments/commentRss/383780.htmlhttp://www.tkk7.com/hoojo/services/trackbacks/383780.html闃呰鍏ㄦ枃

hoojo 2012-07-23 16:58 鍙戣〃璇勮
]]>
Spring 3 鏁村悎Apache CXF WebServicehttp://www.tkk7.com/hoojo/archive/2012/07/13/383042.htmlhoojohoojoFri, 13 Jul 2012 09:47:00 GMThttp://www.tkk7.com/hoojo/archive/2012/07/13/383042.htmlhttp://www.tkk7.com/hoojo/comments/383042.htmlhttp://www.tkk7.com/hoojo/archive/2012/07/13/383042.html#Feedback0http://www.tkk7.com/hoojo/comments/commentRss/383042.htmlhttp://www.tkk7.com/hoojo/services/trackbacks/383042.html鍦–XF2鐗堟湰涓紝鏁村悎Spring3鍙戝竷CXF WebService灝辨洿鍔犵畝鍗曚簡(jiǎn)銆傚洜涓篠pring 3鎻愪緵浜?jiǎn)annotation娉ㄨВ錛岃孋XF2鍙戝竷WebService宸茬粡涓嶅儚涔嬪墠鐗堟湰鐨勯厤緗偅鏍鳳紙鍙傝冭佺増鏈彂甯僕ebService緋誨垪鏂囩珷錛?a title="http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html" >http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html錛夛紝鐜板湪鍙戝竷涓涓猈ebService鍙互鐩存帴浠嶴pring鐨処oC瀹瑰櫒涓嬁鍒頒竴涓璞★紝鍙戝竷鎴怶ebService鏈嶅姟銆傚綋鐒跺彂甯僕ebService鐨勯厤緗湁浜?jiǎn)浜洖畯灏忕殑鍙樺姩锛屽叿浣撹寰涓嬬湅銆?/p>

 

鍦ㄨ佺増鏈腑鍙戝竷涓涓猈ebService錛岄厤緗產(chǎn)pplicationContext-server.xml鏂囦歡涓坊鍔犲涓嬮厤緗涓嬶細(xì)

jaxws:server鐨勫彂甯冩柟寮?/p>

<bean id="userServiceBean" class="com.hoo.service.ComplexUserService"/>
 
<bean id="inMessageInterceptor" class="com.hoo.interceptor.MessageInterceptor">
    <constructor-arg  value="receive"/>
</bean>
 
<bean id="outLoggingInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
<!-- 娉ㄦ剰涓嬮潰鐨刟ddress錛岃繖閲岀殑address鐨勫悕縐板氨鏄闂殑WebService鐨刵ame -->
<jaxws:server id="userService" serviceClass="com.hoo.service.IComplexUserService" address="/Users">
    <jaxws:serviceBean>
        <!-- 瑕佹毚闇茬殑 bean 鐨勫紩鐢?-->
        <ref bean="userServiceBean"/>
    </jaxws:serviceBean>
    <jaxws:inInterceptors>
        <ref bean="inMessageInterceptor"/>
    </jaxws:inInterceptors>
    <jaxws:outInterceptors>
        <ref bean="outLoggingInterceptor"/>
    </jaxws:outInterceptors>
</jaxws:server>

jaxws:endpoint鐨勫彂甯冩柟寮?/p>

<!-- com.hoo.service.ComplexUserService鏄痗om.hoo.service.IComplexUserService鎺ュ彛鐨勫疄鐜幫紝 榪欑鏂規(guī)硶搴旇涓嶈兘浠嶪oc涓紩鐢ㄥ璞?-->
<jaxws:endpoint id="userService2" implementor="com.hoo.service.ComplexUserService" address="/Users">
    <jaxws:inInterceptors>
        <ref bean="inMessageInterceptor"/>
    </jaxws:inInterceptors>
    <jaxws:outInterceptors>
        <ref bean="outLoggingInterceptor"/>
    </jaxws:outInterceptors>
</jaxws:endpoint>

鑰屽湪2.x鏂扮増鏈腑錛屽彂甯僆oc瀹瑰櫒涓殑瀵硅薄涓轟竴涓猈ebService鐨勬柟娉?/p>

<bean id="userServiceBean" class="com.hoo.service.ComplexUserService"/>
 
<bean id="inMessageInterceptor" class="com.hoo.interceptor.MessageInterceptor">
    <constructor-arg  value="receive"/>
</bean>
 
<bean id="outLoggingInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
<!-- 娉ㄦ剰涓嬮潰鐨刟ddress錛岃繖閲岀殑address鐨勫悕縐板氨鏄闂殑WebService鐨刵ame錛?userServiceBean鏄洿鎺ュ紩鐢↖oc瀹瑰櫒涓殑Bean瀵硅薄 -->
<jaxws:server id="userService" serviceBean="#userServiceBean" address="/Users">
    <jaxws:inInterceptors>
        <ref bean="inMessageInterceptor"/>
    </jaxws:inInterceptors>
    <jaxws:outInterceptors>
        <ref bean="outLoggingInterceptor"/>
    </jaxws:outInterceptors>
</jaxws:server>
<!-- 鎴栬呰繖縐嶆柟寮忥紝鍦ㄨ佺増鏈腑榪欎釜鏄笉鑳藉紩鐢↖oc瀹瑰櫒涓殑瀵硅薄錛屼絾鍦?.x涓彲浠ョ洿鎺ョ敤#id鎴?name鐨勬柟寮忓彂甯冩湇鍔?-->
<jaxws:endpoint id="userService2" implementor="#userServiceBean" address="/Users">
    <jaxws:inInterceptors>
        <ref bean="inMessageInterceptor"/>
    </jaxws:inInterceptors>
    <jaxws:outInterceptors>
        <ref bean="outLoggingInterceptor"/>
    </jaxws:outInterceptors>
</jaxws:endpoint>

CXF鍙戝竷WebService瀹樻柟鍙傝冿細(xì)http://cxf.apache.org/docs/writing-a-service-with-spring.html



hoojo 2012-07-13 17:47 鍙戣〃璇勮
]]>
鍦⊿pring銆丠ibernate涓嬌鐢‥hcache緙撳瓨http://www.tkk7.com/hoojo/archive/2012/07/12/382860.htmlhoojohoojoThu, 12 Jul 2012 02:48:00 GMThttp://www.tkk7.com/hoojo/archive/2012/07/12/382860.htmlhttp://www.tkk7.com/hoojo/comments/382860.htmlhttp://www.tkk7.com/hoojo/archive/2012/07/12/382860.html#Feedback0http://www.tkk7.com/hoojo/comments/commentRss/382860.htmlhttp://www.tkk7.com/hoojo/services/trackbacks/382860.html

鍓嶄竴綃?a title="http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html" href="http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html">http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html浠嬬粛浜?jiǎn)Ehcache鏁村悎Spring緙撳瓨錛屼嬌鐢ㄩ〉闈€佸璞$紦瀛橈紱榪欓噷灝嗕粙緇嶅湪Hibernate涓嬌鐢ㄦ煡璇㈢紦瀛樸佷竴綰х紦瀛樸佷簩綰х紦瀛橈紝鏁村悎Spring鍦℉ibernateTemplate涓嬌鐢ㄦ煡璇㈢紦瀛樸?/p>

EhCache鏄疕ibernate鐨勪簩綰х紦瀛樻妧鏈箣涓錛屽彲浠ユ妸鏌ヨ鍑烘潵鐨勬暟鎹瓨鍌ㄥ湪鍐呭瓨鎴栬呯鐩橈紝鑺傜渷涓嬫鍚屾牱鏌ヨ璇彞鍐嶆鏌ヨ鏁版嵁搴擄紝澶у箙鍑忚交鏁版嵁搴撳帇鍔涳紱

EhCache鐨勪嬌鐢ㄦ敞鎰忕偣

褰撶敤Hibernate鐨勬柟寮忎慨鏀硅〃鏁版嵁(save,update,delete絳夌瓑)錛岃繖鏃禘hCache浼?xì)鑷姩鎶娋~撳瓨?shù)腑鍏充簬姝よ〃鐨勬墍鏈夌紦瀛樺叏閮ㄥ垹闄ゆ帀(榪欐牱鑳借揪鍒板悓姝?銆備絾瀵逛簬鏁版嵁緇忓父淇敼鐨勮〃鏉ヨ錛屽彲鑳藉氨澶卞幓緙撳瓨鐨勬剰涔変簡(jiǎn)(涓嶈兘鍑忚交鏁版嵁搴撳帇鍔?錛?

鍦ㄦ瘮杈冨皯鏇存柊琛ㄦ暟鎹殑鎯呭喌涓嬶紝EhCache涓鑸浣跨敤鍦ㄦ瘮杈冨皯鎵цwrite鎿嶄綔鐨勮〃(鍖呮嫭update,insert,delete絳?[Hibernate鐨勪簩綰х紦瀛樹(shù)篃閮芥槸榪欐牱]錛涘騫跺彂瑕佹眰涓嶆槸寰堜弗鏍肩殑鎯呭喌涓嬶紝涓ゅ彴鏈哄瓙涓殑緙撳瓨鏄笉鑳藉疄鏃跺悓姝ョ殑錛?/p>

 

棣栧厛瑕佸湪hibernate.cfg.xml閰嶇疆鏂囦歡涓坊鍔犻厤緗紝鍦╤ibernate.cfg.xml涓殑mapping鏍囩涓婇潰鍔犱互涓嬪唴瀹癸細(xì)

<!--  Hibernate 3.3 and higher -->  
<!--   
<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property>
<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory</property>
-->  
<!-- hibernate3.0-3.2 cache config-->  
<!--    
<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheProvider</property>  
-->  
<property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</property>  
           
<!-- Enable Second-Level Cache and Query Cache Settings -->  
<property name="hibernate.cache.use_second_level_cache">true</property>  
<property name="hibernate.cache.use_query_cache">true</property>

 

濡傛灉浣犳槸鏁村悎鍦╯pring閰嶇疆鏂囦歡涓紝閭d箞浣犲緱閰嶇疆浣犵殑applicationContext.xml涓浉鍏砈essionFactory鐨勯厤緗?

<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>

 

鐒跺悗鍦╤ibernate.cfg.xml閰嶇疆鏂囦歡涓姞鍏ヤ嬌鐢ㄧ紦瀛樼殑灞炴?

<!-- class-cache config -->  
<class-cache class="com.hoo.hibernate.entity.User" usage="read-write" />

 

褰撶劧浣犱篃鍙互鍦║ser.hbm.xml鏄犲皠鏂囦歡闇瑕丆ache鐨勯厤緗甤lass鑺傜偣涓嬶紝鍔犲叆綾諱技濡備笅鏍煎紡淇℃伅錛?

<class name="com.hoo.hibernate.entity.User" table="USER" lazy="false">
<cache usage="transactional|read-write|nonstrict-read-write|read-only" />
娉ㄦ剰錛歝ache鑺傜偣鍏冪礌搴旂揣璺焎lass鍏冪礌

 

鍏充簬閫夋嫨緙撳瓨絳栫暐渚濇嵁錛?

ehcache涓嶆敮鎸乼ransactional錛屽叾浠栦笁縐嶅彲浠ユ敮鎸併?/strong>

read- only錛氭棤闇淇敼錛?鍙互瀵瑰叾榪涜鍙緙撳瓨錛屾敞鎰忥細(xì)鍦ㄦ絳栫暐涓嬶紝濡傛灉鐩存帴淇敼鏁版嵁搴擄紝鍗充嬌鑳藉鐪嬪埌鍓嶅彴鏄劇ず鏁堟灉錛屼絾鏄皢瀵硅薄淇敼鑷砪ache涓細(xì)鎶rror錛宑ache涓嶄細(xì)鍙戠敓浣滅敤銆傚彟錛氬垹闄よ褰曚細(xì)鎶ラ敊錛屽洜涓轟笉鑳藉湪read-only妯″紡鐨勫璞′粠cache涓垹闄ゃ?

read-write錛氶渶瑕佹洿鏂版暟鎹紝閭d箞浣跨敤璇?鍐欑紦瀛樻瘮杈冨悎閫傦紝鍓嶆彁錛?em>鏁版嵁搴撲笉鍙互涓簊erializable transaction isolation level錛堝簭鍒楀寲浜嬪姟闅旂綰у埆錛?/em>

nonstrict-read-write錛氬彧鍋跺皵闇瑕佹洿鏂版暟鎹紙涔熷氨鏄錛屼袱涓簨鍔″悓鏃舵洿鏂板悓涓璁板綍鐨勬儏鍐靛緢涓嶅父瑙侊級(jí)錛屼篃涓嶉渶瑕佸崄鍒嗕弗鏍肩殑浜嬪姟闅旂錛岄偅涔堟瘮杈冮傚悎浣跨敤闈炰弗鏍艱/鍐欑紦瀛樼瓥鐣ャ?/p>

 

濡傛灉浣犱嬌鐢ㄧ殑娉ㄨВ鏂瑰紡錛屾病鏈塙ser.hbm.xml錛岄偅涔堜綘涔熷彲浠ョ敤娉ㄨВ鏂瑰紡閰嶇疆緙撳瓨

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)   
public class User implements Serializable {
}

 

鍦―ao灞備嬌鐢╟ache錛屼唬鐮佸涓?

Session s = HibernateSessionFactory.getSession();
Criteria c = s.createCriteria(User.class);
c.setCacheable(true);//榪欏彞蹇呴』瑕佹湁
System.out.println("絎竴嬈¤鍙?);
List<User> users = c.list();
System.out.println(users.size());
HibernateSessionFactory.closeSession();
 
s = HibernateSessionFactory.getSession();
c = s.createCriteria(User.class);
c.setCacheable(true);//榪欏彞蹇呴』瑕佹湁
System.out.println("絎簩嬈¤鍙?);
users = c.list();
System.out.println(users.size());
HibernateSessionFactory.closeSession();

浣犱細(xì)鍙戠幇絎簩嬈℃煡璇㈡病鏈夋墦鍗皊ql璇彞錛岃屾槸鐩存帴浣跨敤緙撳瓨?shù)腑鐨勫璞°?

濡傛灉浣犵殑Hibernate鍜孲pring鏁村悎鍦ㄤ竴璧鳳紝閭d箞浣犲彲浠ョ敤HibernateTemplate鏉ヨ緗甤ache

getHibernateTemplate().setCacheQueries(true);
return getHibernateTemplate().find("from User");

褰撲綘鏁村悎Spring鏃訛紝濡傛灉浣犵殑HibernateTemplate妯℃澘閰嶇疆鍦⊿pring鐨処oc瀹瑰櫒涓紝閭d箞浣犲彲浠ヨ繖鏍峰惎鐢╭uery cache

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
       <ref bean="sessionFactory" />
    </property>
    <property name="cacheQueries">
       <value>true</value>
    </property>
</bean>

姝ゅ悗錛屼綘鍦╠ao妯″潡涓敞鍏essionFactory鐨勫湴鏂歸兘娉ㄥ叆hibernateTemplate鍗沖彲銆?

 

浠ヤ笂璁插埌鐨勯兘鏄疭pring鍜孒ibernate鐨勯厤緗紝涓嬮潰涓昏緇撳悎涓婇潰浣跨敤鐨別hcache錛屾潵瀹屾垚ehcache.xml鐨勯厤緗傚鏋滀綘娌℃湁閰嶇疆ehcache錛岄粯璁ゆ儏鍐典笅浣跨敤defaultCache鐨勯厤緗?

<cache name="com.hoo.hibernate.entity.User" maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true" />
<!--
hbm鏂囦歡鏌ユ壘cache鏂規(guī)硶鍚嶇殑絳栫暐錛氬鏋滀笉鎸囧畾hbm鏂囦歡涓殑region="ehcache.xml涓殑name鐨勫睘鎬у?錛屽垯浣跨敤name鍚嶄負(fù)com.hoo.hibernate.entity.User鐨刢ache錛屽鏋滀笉瀛樺湪涓庣被鍚嶅尮閰嶇殑cache鍚嶇О錛屽垯鐢?defaultCache銆?/span>
濡傛灉User鍖呭惈set闆嗗悎錛屽垯闇瑕佸彟琛屾寚瀹氬叾cache
渚嬪User鍖呭惈citySet闆嗗悎錛屽垯闇瑕?/span>
娣誨姞濡備笅閰嶇疆鍒癳hcache.xml涓?/span>
-->
<cache name="com.hoo.hibernate.entity.citySet"
maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="300"
timeToLiveSeconds="600" overflowToDisk="true" />

 

濡傛灉浣犱嬌鐢ㄤ簡(jiǎn)Hibernate鐨勬煡璇㈢紦瀛橈紝闇瑕佸湪ehcache.xml涓姞鍏ヤ笅闈㈢殑閰嶇疆

<cache name="org.hibernate.cache.UpdateTimestampsCache"
    maxElementsInMemory="5000" 
    eternal="true" 
    overflowToDisk="true" />
<cache name="org.hibernate.cache.StandardQueryCache"
    maxElementsInMemory="10000" 
    eternal="false" 
    timeToLiveSeconds="120"
    overflowToDisk="true" />

璋冭瘯鏃跺欎嬌鐢╨og4j鐨?strong>log4j.logger.org.hibernate.cache=debug錛屾洿鏂逛究鐪嬪埌ehcache鐨勬搷浣滆繃紼嬶紝涓昏鐢ㄤ簬璋冭瘯榪囩▼,瀹為檯搴旂敤鍙戝竷鏃跺欙紝璇鋒敞閲婃帀錛屼互鍏嶅獎(jiǎng)鍝嶆ц兘銆?/p>

浣跨敤ehcache錛屾墦鍗皊ql璇彞鏄甯哥殑錛屽洜涓簈uery cache璁劇疆涓簍rue灝嗕細(xì)鍒涘緩涓や釜緙撳瓨鍖哄煙錛氫竴涓敤浜庝繚瀛樻煡璇㈢粨鏋滈泦 (org.hibernate.cache.StandardQueryCache)錛?鍙︿竴涓垯鐢ㄤ簬淇濆瓨鏈榪戞煡璇㈢殑涓緋誨垪琛ㄧ殑鏃墮棿鎴?org.hibernate.cache.UpdateTimestampsCache)銆傝娉ㄦ剰錛氬湪鏌ヨ緙撳瓨?shù)腑锛屽畠迤堜笉缂撳瓨缁撴灉闆嗕腑鎵鍖呭惈鐨勫疄浣撶殑紜垏鐘舵侊紱瀹冨彧緙撳瓨榪欎簺瀹炰綋鐨勬爣璇嗙灞炴х殑鍊箋佷互鍙?qiáng)鍚勫肩被鍨嬬殑緇撴灉銆?strong>闇瑕佸皢鎵撳嵃sql璇彞涓庢渶榪戠殑cache鍐?瀹圭浉姣旇緝錛屽皢涓嶅悓涔嬪淇敼鍒癱ache涓紝鎵浠ユ煡璇㈢紦瀛橀氬父浼?xì)鍜屼簩珩斁~撳瓨?shù)竴璧蜂嬌鐢ㄣ?/strong>



hoojo 2012-07-12 10:48 鍙戣〃璇勮
]]>
Ehcache 鏁村悎Spring 浣跨敤欏甸潰銆佸璞$紦瀛?/title><link>http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html</link><dc:creator>hoojo</dc:creator><author>hoojo</author><pubDate>Thu, 12 Jul 2012 02:15:00 GMT</pubDate><guid>http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html</guid><wfw:comment>http://www.tkk7.com/hoojo/comments/382852.html</wfw:comment><comments>http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hoojo/comments/commentRss/382852.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hoojo/services/trackbacks/382852.html</trackback:ping><description><![CDATA[     鎽樿: Ehcache鍦ㄥ緢澶氶」鐩腑閮藉嚭鐜拌繃錛岀敤娉曚篃姣旇緝綆鍗曘備竴鑸殑鍔犱簺閰嶇疆灝卞彲浠ヤ簡(jiǎn)錛岃屼笖Ehcache鍙互瀵歸〉闈€佸璞°佹暟鎹繘琛岀紦瀛橈紝鍚屾椂鏀寔闆嗙兢/鍒嗗竷寮忕紦瀛樸傚鏋滄暣鍚圫pring銆丠ibernate涔熼潪甯哥殑綆鍗曪紝Spring瀵笶hcache鐨勬敮鎸佷篃闈炲父濂姐侲HCache鏀寔鍐呭瓨鍜岀鐩樼殑緙撳瓨錛屾敮鎸丩RU銆丩FU鍜孎IFO澶氱娣樻卑綆楁硶錛屾敮鎸佸垎甯冨紡鐨凜ache錛屽彲浠ヤ綔涓篐ibernate鐨勭紦瀛樻彃浠躲傚悓鏃跺畠涔熻兘...  <a href='http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/hoojo/aggbug/382852.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hoojo/" target="_blank">hoojo</a> 2012-07-12 10:15 <a href="http://www.tkk7.com/hoojo/archive/2012/07/12/382852.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Jwchat 鐨勫畨瑁呭拰閰嶇疆銆丼ervice unavailable銆丄uthorization failed闂姹囨?/title><link>http://www.tkk7.com/hoojo/archive/2012/05/17/378444.html</link><dc:creator>hoojo</dc:creator><author>hoojo</author><pubDate>Thu, 17 May 2012 14:05:00 GMT</pubDate><guid>http://www.tkk7.com/hoojo/archive/2012/05/17/378444.html</guid><wfw:comment>http://www.tkk7.com/hoojo/comments/378444.html</wfw:comment><comments>http://www.tkk7.com/hoojo/archive/2012/05/17/378444.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/hoojo/comments/commentRss/378444.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/hoojo/services/trackbacks/378444.html</trackback:ping><description><![CDATA[<p>涓婁竴綃囦粙緇嶄簡(jiǎn)Openfire寮婧愯亰澶㊣M鏈嶅姟鍣ㄧ殑瀹夎錛?a title="http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html" >http://www.cnblogs.com/hoojo/archive/2012/05/17/2506769.html</a></p> <p>榪欑瘒鏂囩珷浠嬬粛Jwchat鐨勫畨瑁呭拰閰嶇疆</p> <p> </p> <p>棣栧厛Jwchat鐨勯厤緗拰瀹夎闇瑕佸叿澶囩殑鐜錛? <p>Tomcat 5.0.28+/Tomcat 6 <p>JDK 1.6+ <p>Openfire 3.7.1 <p>1銆?涓嬭澆jwchat宸ョ▼鏂囦歡 <p>涓嬭澆绔欑偣錛?a >http://blog.jwchat.org/jwchat/download/</a> <p>Zip涓嬭澆錛?a >http://downloads.sourceforge.net/jwchat/jwchat-1.0.zip?use_mirror</a>= <p>  <p>2銆?涓嬭澆瀹屾垚鍚庯紝灝唈wchat-1.0.zip瑙e帇鍒頒綘鐨則omcat鐨剋ebapps鐩綍錛屽皢jwchat-1.0鍛藉悕涓簀wchat錛屽鏋滀笉榪欐牱鐨勮瘽錛屽彲鑳戒細(xì)鍑虹幇閿欒錛屽Authorization failed銆傝嚦灝戣繖鏍蜂細(xì)鏂逛究浣犺闂甹wchat宸ョ▼銆? <p>鐒跺悗灝唅ndex.html.zh_CN絳夎繖鏍峰甫鏈?.鍚庣紑.zh_CN鐨勮繖鏍風(fēng)殑鏂囦歡鐨?zh_CN閮藉垹鎺夛紝榪涜閲嶅懡鍚嶃?zh_CN鏄〃紺轟腑鏂囩増鐨勶紝褰撶劧浣犱篃鍙互鐩存帴灝?.鍚庣紑.鍚庣紑鐨勬枃浠惰繘琛岄噸鍛藉悕錛岄偅鏍峰氨鏄粯璁ょ殑鑻辨枃鐗堢殑浜?jiǎn)銆? <p>鎵歸噺鍛藉悕宸ュ叿綾伙細(xì) <div class="hwvvzcf" id="codeSnippetWrapper"> <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px">package com.hoo.util;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px">import java.io.File;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">/**</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * <b>function:</b> 鏂囦歡鍛藉悕宸ュ叿綾?/span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @author hoojo</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @createDate 2012-5-14 涓嬪崍01:58:14</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @file FileRenameUtils.java</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @package com.hoo.util</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @blog http://blog.csdn.net/IBM_hoojo</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @email hoojo_@126.com</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @version 1.0</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> */</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">public</span> <span style="color: #0000ff">abstract</span> <span style="color: #0000ff">class</span> FileRenameUtils {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff">private</span> final <span style="color: #0000ff">static</span> String FILE_PATH = <span style="color: #006080">"D:\\apache-tomcat-6.0.33\\webapps\\jwchat"</span>;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #008000">/**</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * <b>function:</b> 灝嗘寚瀹氱洰褰曚笅鐨勬枃浠剁殑type綾誨瀷鐨勬枃浠訛紝榪涜閲嶅懡鍚嶏紝鍛藉悕鍚庣殑鏂囦歡灝嗗幓鎺塼ype</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * <p>example: 濡傛灉type = html錛?index.html.html -> index.html</p></span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * <p>example: 濡傛灉type = zh_CN錛?index.html.zh_CN -> index.html</p></span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @author hoojo</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @createDate 2012-5-16 涓嬪崍02:16:48</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @param path</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> * @param type</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"> */</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> rename(String path, String type) {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff">if</span> (path == <span style="color: #0000ff">null</span> || <span style="color: #006080">""</span>.equals(path)) {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> path = FILE_PATH;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> File dir = <span style="color: #0000ff">new</span> File(path);</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> File[] list = dir.listFiles();</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff">for</span> (File file : list) {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> String name = file.getName();</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> String[] s = name.split(<span style="color: #006080">"\\."</span>);</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff">if</span> (s.length == 3 && type.equals(s[2])) {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> System.<span style="color: #0000ff">out</span>.println(s[0] + <span style="color: #006080">"--"</span> + s[1] + <span style="color: #006080">"--"</span> + s[2]);</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> file.renameTo(<span style="color: #0000ff">new</span> File(path + <span style="color: #006080">"/"</span> + s[0] + <span style="color: #006080">"."</span> + s[1]));</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff">public</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> main(String[] args) {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> FileRenameUtils.rename(<span style="color: #006080">"D:\\apache-tomcat-6.0.33\\webapps\\jwchat"</span>, <span style="color: #006080">"zh_CN"</span>);</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px">}</pre><!--CRLF--></div></div> <p>3銆?涓嬭澆JabberHTTPBind榪欎釜鍖咃紝鍥犱負(fù)鐩存帴涓嬭澆鐨刯wchat娌℃湁WEB-INF銆亀eb.xml鏄棤娉曡繍琛岀殑銆? <p>JabberHTTPBind鏄痡wchat榪涜http bind閫氫俊鐨勪竴縐嶆柟寮忥紝瀹冨彲浠ヨjwchat鍜宱penfire榪涜閾炬帴閫氫俊銆? <p>绔欑偣錛?a >http://blog.jwchat.org/jhb/</a> <p>涓嬭澆鍦板潃錛?a >http://blog.jwchat.org/download/JabberHTTPBind-1.1.1.zip</a> <p>JabberHTTPBind浼?xì)渚濊禆xalan鐨刲ibrary搴? <p>涓嬭澆绔欑偣錛?a >http://xml.apache.org/xalan-j/downloads.html</a> <p>涓嬭澆鐩綍錛?a >http://labs.renren.com/apache-mirror/xml/xalan-j/</a> <p>  <p>4銆?涓嬭澆瀹屾垚鍚庯紝灝咼abberHTTPBind鐨剒ip瑙e帇鍑烘潵鐨刉EB-INF銆丮ETA-INF涓騫舵斁鍒板垰鎵嶇殑jwchat鐩綍涓紝騫朵笖灝嗗垰鎵嶄笅杞界殑xalan鐨剎alan.jar,serializer.jar, xercesImpl.jar, xml-apis.jar鏀懼埌webapps\jwchat\WEB-INF\lib鐩綍涓嬪嵆鍙? <p>  <p>5銆?淇敼jwchat鐩綍涓殑鐩稿叧閰嶇疆 <p>淇敼config.js鏂囦歡 <div class="cuekjil" id="codeSnippetWrapper"> <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">var</span> BACKENDS = </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px">[</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> 鈥︹?/pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> },</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> 鈥︹?/pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> },</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> name:<span style="color: #006080">"Open Relay"</span>,</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> description:<span style="color: #006080">"HTTP Binding backend that allows connecting to any jabber server"</span>,</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> httpbase:<span style="color: #006080">"/JHB/"</span>, <span style="color: #008000">/* 淇敼榪欓噷涓猴細(xì)/jwchat/JHB/ */</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> type:<span style="color: #006080">"binding"</span>,</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> default_server: SITENAME</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> },</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> 鈥︹?/pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px">];</pre><!--CRLF--></div></div> <p>淇敼WEB-INF鐩綍涓嬬殑web.xml鏂囦歡 <div class="zdulnfe" id="codeSnippetWrapper"> <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff"><</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">></span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff"><</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span>Jabber HTTP Binding Servlet<span style="color: #0000ff"></</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">></span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #0000ff"><</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span>/<span style="color: #0000ff"></</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> url-pattern淇敼涓猴細(xì)/JHB/</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"> <span style="color: #008000"><!-- 榪欓噷鐨勪慨鏀逛富欏墊槸瀵瑰簲涓婇潰鐨刢onfig.js錛屽鏋渃onfig.js鐨刪ttpbase閰嶇疆鏄?jwchat/錛岄偅榪欓噷鐨勫氨涓嶇敤淇敼浜?--></span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 10pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff"></</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">></span></pre><!--CRLF--></div></div> <p>6銆?鍚姩tomcat鍚庯紝璁塊棶<a href="http://localhost:8080/jwchat/">http://localhost:8080/jwchat/</a> <p>濡傛灉鐧誨綍鍑虹幇Service unavailable榪欎釜闂錛岄偅涔堜細(xì)鏈変互涓嬪嚑縐嶆儏鍐碉細(xì) <p>A銆?琛ㄦ槑鏈嶅姟鍣ㄤ笉鍙敤錛屽彲鑳芥槸openfire鏈嶅姟鍣ㄦ病鏈夊惎鍔紝 <p>B銆?webapps\jwchat \config.js鐨勯厤緗湁闂錛屽var SITENAME = "localhost";鍜宱penfire鏈嶅姟鍣ㄥ湴鍧娌℃湁瀵瑰簲 <p>C銆?浼撮殢鍑虹幇錛欵xception in thread "Thread-34" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found寮傚父錛屽彲鑳芥槸tomcat鐗堟湰浣庝簬tomcat6鎴栨槸jwchat緙哄皯鐩稿簲鐨刯ar鍖咃紝濡傜己灝憍ml鐨剆erializer.jar銆亁alan.jar銆亁ercesImpl.jar銆亁ml-apis.jar <p>D銆佸鏋滃湪婊¤凍浜?jiǎn)c姝ラ錛屾湁娣誨姞jra鍖呰繕鍑虹幇Exception in thread "Thread-34" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found寮傚父錛屽緩璁垹闄omcat/work鐩綍涓嬬殑緙撳瓨錛岀劧鍚庨噸鍚痶omcat璇曡瘯 <p>  <p>7銆?濡傛灉鐧誨綍鍑虹幇Authorization failed楠岃瘉澶辮觸錛岄偅涔堟湁浠ヤ笅鍑犵鍙兘鐨勬儏鍐碉細(xì) <p>A銆?鐢ㄦ埛娌℃湁娉ㄥ唽 <p>B銆?openfire鐨勮瘉涔︼紙C:\Program Files\openfire\resources\security錛夋病鏈夊畨瑁呭埌鐩稿簲鐨刯dk鐨凜:\Program Files\Java\jre6\lib\security鐩綍涓? <p>濡傛灉鍑虹幇榪欑寮傚父淇℃伅錛歫avax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed涔熻〃鏄庢槸瀹夊叏璇佷功鐨勯棶棰橈紱 <p>鍏充簬瑙e喅ssl楠岃瘉錛岀綉涓婃湁浜鴻鍦╦sjac.js涓殑if(this.has_sasl) 榪欒鍓嶉潰鍔犱笂this.has_sasl = false;鏉ュ彇娑坰sl瀹夊叏璇佷功鐨勯獙璇併? <p>C銆?濡傛灉浣犵殑宸ョ▼鍚嶇О涓嶆槸jwchat錛屽緩璁妸瀹冧慨鏀規(guī)垚jwchat騫朵笖淇敼config.xml鐨勭浉鍏抽摼鎺ョ殑閰嶇疆錛坔ttpbase錛? <p>D銆?榪樻湁鍙兘鏄綘褰撳墠鐨勭敤鎴鋒病鏈夋敞鍐岋紝榪欎釜鏃跺欎綘鍙互娉ㄥ唽涓涓敤鎴鋒垨鏄湪openfire鎺у埗鍙扮殑鐢ㄦ埛緇勪腑娣誨姞涓涓敤鎴鳳紝鐒跺悗鍐嶇瓑浜?jiǎn)鐪嬬湅鏄惁瀛樺湪杩欎釜闂銆? <p>  <p>8銆?淇敼鏈嶅姟鍣ㄥ悕縐? <p>鐐瑰嚮鏈嶅姟鍣犳湇鍔″櫒綆$悊鍣犵紪杈戝睘鎬?淇敼鏈嶅姟鍣ㄥ悕縐? <p><a href="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_10.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_thumb_4.png" width="562" height="177"></a> <p>淇敼鍚庣殑鏈嶅姟鍣ㄥ悕縐? <p><a href="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_thumb_3.png" width="342" height="196"></a> <p>鍑虹幇鍙瑰彿錛屾垜浠鍒犻櫎瀹夊叏璇佷功錛岀偣鍑?yán)L湇鍔″櫒脿鏈嶅姟鍣ㄨ緗犳湇鍔″櫒瀹夊叏璇佷功鍒犳帀榪欓噷鐨勮瘉涔︺? <p><a href="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_thumb_2.png" width="562" height="69"></a> <p>鍒犻櫎鍚庯紝鍦ㄥ綋鍓嶉〉闈細(xì)鍑虹幇鎻愮ず錛岀劧鍚庢寜鐓ф彁紺虹偣鍑葷浉搴旂殑閾炬帴錛岄噸鍚湇鍔″櫒錛岀劧鍚庣櫥闄嗭紝鍐嶇敓鎴愯瘉涔? <p><a href="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_thumb_1.png" width="281" height="81"></a> <p>鐢熸垚璇佷功闇瑕佺偣鏃墮棿錛岀劧鍚庣敓鎴愬畬鎴愬悗錛屾墜鍔ㄩ噸鍚痮penfire鏈嶅姟鍣紝鍐嶆鐧婚檰鍙戠幇璀﹀憡娌℃湁浜?jiǎn)銆? <p>  <a href="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.tkk7.com/images/blogjava_net/hoojo/WindowsLiveWriter/JwchatServiceunavailableAuthorizationfai_11CE2/image_thumb.png" width="316" height="186"></a> <p>9銆?鍦ㄦ湇鍔″櫒绔鍔犻厤緗? <p>xmpp.httpbind.client.requests.polling = 0 <p>xmpp.httpbind.client.requests.wait = 10 <img src ="http://www.tkk7.com/hoojo/aggbug/378444.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/hoojo/" target="_blank">hoojo</a> 2012-05-17 22:05 <a href="http://www.tkk7.com/hoojo/archive/2012/05/17/378444.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Openfire 鐨勫畨瑁呭拰閰嶇疆http://www.tkk7.com/hoojo/archive/2012/05/17/378440.htmlhoojohoojoThu, 17 May 2012 12:03:00 GMThttp://www.tkk7.com/hoojo/archive/2012/05/17/378440.htmlhttp://www.tkk7.com/hoojo/comments/378440.htmlhttp://www.tkk7.com/hoojo/archive/2012/05/17/378440.html#Feedback0http://www.tkk7.com/hoojo/comments/commentRss/378440.htmlhttp://www.tkk7.com/hoojo/services/trackbacks/378440.html1銆?涓嬭澆鏈鏂扮殑openfire瀹夎鏂囦歡

瀹樻柟涓嬭澆绔欑偣錛?a >http://www.igniterealtime.org/downloads/index.jsp#openfire

涓嬭澆鍦板潃錛?

Exe錛?a >http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3_7_1.exe

ZIP: http://www.igniterealtime.org/downloads/download-landing.jsp?file=openfire/openfire_3_7_1.zip

鎴戜嬌鐢ㄧ殑鏄痾ip瑙e帇鐗堢殑瀹夎鏂囦歡銆?

鍏朵腑openfire鏄湇鍔″櫒錛屼笅闈㈣繕鏈変竴涓猻park錛岃繖涓槸涓涓猉MPP鍗忚閫氫俊鑱婂ぉ鐨凜S鐨処M杞歡錛屽畠鍙互閫氳繃openfire榪涜鑱婂ぉ瀵硅瘽銆?

 

2銆?涓嬭澆瀹屾垚鍚庯紝濡傛灉浣犱笅杞界殑鏄痚xe鏂囦歡錛屾墽琛屼綘鐨勫畨瑁呮枃浠訛紝榪涜瀹夎銆傝繖閲屾垜鏄痾ip鐨勬枃浠躲傝В鍘嬪悗錛屽鍒秓penfire鐩綍鍒癈:\Program Files\鐩綍涓嬶紱涓瀹氳鍦–:\Program Files\鐩綍涓嬬殑錛涜繖鏍穙penfire灝卞畨瑁呭畬鎴愪簡(jiǎn)銆?

 

3銆?涓嬮潰鎴戜滑鍚姩openfire鏈嶅姟鍣紝騫墮厤緗畠銆傚湪C:\Program Files\openfire\bin鐩綍涓嬫湁涓涓數(shù)鐏場(chǎng)鐨刼penfire.exe鏂囦歡錛屽弻鍑?yán)L墽琛岋紝鍚姩瀹屾垚鍚庡彲浠ョ湅鍒?

image

4銆?鐐瑰嚮Launch Admin鎸夐挳榪涘叆http://127.0.0.1:9090/setup/index.jsp欏甸潰錛岄厤緗畂penfire鏈嶅姟鍣?

 

5銆?閫夋嫨璇█ 涓枃綆浣?

image

鐐瑰嚮continue榪涘叆

 

6銆?閰嶇疆鏈嶅姟鍣ㄥ煙鍚?

image

濡傛灉浣犳槸鏈湴璁塊棶錛岄偅涔堜綘鍙互涓嶄慨鏀規(guī)垨鏄嬌鐢╨ocalhost銆?27.0.0.1鐨勬柟寮?

濡傛灉浣犵敤浜庡緗戞垨灞鍩熺綉璁塊棶錛岄偅涔堜綘鐨勫湴鍧閰嶇疆鎴愬緗戞垨灞鍩熺綉鍦板潃

 

7銆?閫夋嫨鏁版嵁搴?

image

閫夋嫨openfire鑷甫鐨勶紝褰撶劧浣犱篃鍙互閫夋嫨浣犵殑鏁版嵁搴撶被鍨嬨傚Oracle銆丼QLServer銆丮ySQL絳夈傚鏋渙penfire娌℃湁甯dbc鐨勮繛鎺ラ┍鍔紝浣犻渶瑕佹坊鍔犺繛鎺ユ暟鎹簱鐨刯dbc椹卞姩錛涢┍鍔ㄦ斁鍦–:\Program Files\openfire\lib鐩綍涓?

 

8銆?閫夋嫨鐗規(guī)ч厤緗紝榛樿鍗沖彲

image

 

9銆?綆$悊鍛橀偖浠訛紝鍙互璺寵繃榪欐

image

 

10銆?瀹夎瀹屾垚

image

榪涘叆綆$悊鍛樻帶鍒跺彴欏甸潰

 

11銆?榪涘叆http://127.0.0.1:9090/login.jsp欏甸潰鍚庯紝杈撳叆admin銆佸瘑鐮乤dmin鐧婚檰榪涘叆

image

 

12銆?榪涘叆鍚庡彲浠ョ湅鍒?

image

鏈嶅姟鍣ㄥ悕縐板氨鏄痡wchat鐨勮繛鎺ュ湴鍧錛涗綘鍙互浣跨敤Spark銆乯wchat閾炬帴榪欎釜鍦板潃榪涜IM閫氫俊鑱婂ぉ鈥︹?

鑷蟲(chóng)錛宱penfire鐨勫畨瑁呭拰閰嶇疆宸茬粡瀹屾垚銆備笅涓綃囨枃绔犲紑濮嬪畬鎴恓wchat鐨勫畨瑁呭拰閰嶇疆銆?

濡傛灉浣犻渶瑕佹洿鎹㈡湇鍔″櫒鍚嶇Оip錛岃鐪嬩笅涓綃囨枃绔狅紒

hoojo 2012-05-17 20:03 鍙戣〃璇勮
]]>
BlazeDS 鏁村悎 Flex HelloWorld 紺轟緥http://www.tkk7.com/hoojo/archive/2011/09/16/358798.htmlhoojohoojoFri, 16 Sep 2011 07:24:00 GMThttp://www.tkk7.com/hoojo/archive/2011/09/16/358798.htmlhttp://www.tkk7.com/hoojo/comments/358798.htmlhttp://www.tkk7.com/hoojo/archive/2011/09/16/358798.html#Feedback2http://www.tkk7.com/hoojo/comments/commentRss/358798.htmlhttp://www.tkk7.com/hoojo/services/trackbacks/358798.html寮鍙戠幆澧冿細(xì)

System錛歐indows

WebBrowser錛欼E6+銆丗irefox3+

JavaEE Server錛歵omcat5.0.2.8銆乼omcat6

IDE錛歟clipse銆丮yEclipse 8

Flex IDE錛欶lash Builder 4

BlazeDS錛?.5

寮鍙戜緷璧栧簱錛?

JavaEE5銆乥lazeDS 4.5

Email錛歨oojo_@126.com

Blog錛?a >http://blog.csdn.net/IBM_hoojo

http://hoojo.cnblogs.com/

 

涓銆佸噯澶囧伐浣?/h4>

1銆?棣栧厛瑕佹彁渚涚浉鍏崇殑jar鍖?

Java鏈嶅姟鍣ㄧ闇瑕佹彁渚汢lazeDS鐩稿叧鐨勯厤緗拰jar鍖?

涓嬭澆鍦板潃錛?a >http://opensource.adobe.com/wiki/display/blazeds/download+blazeds+trunk

涓嬭澆鍚庯紝瑙e帇浣犲彲浠ョ湅鍒拌繖鏍風(fēng)殑涓涓洰褰?

clip_image002

Docs灝辨槸鏂囨。

Resource鏄簮鐮?

SampleDB鏄ず渚嬬敤鐨勬暟鎹簱錛屽彲浠ヨ繍琛宻tartdb.bat鏉ュ惎鍔ㄦ暟鎹簱

Tomcat鏄唴緗殑tomcat錛屽鏋滀綘娌℃湁tomcat鐨勮瘽鍙互浣跨敤瀹冿紝鍦╰omcat鐨剋ebapps鐩綍涓湁samples紺轟緥

blazeds.war灝辨槸blazeDS鐨勬牳蹇?jī)鏂囦欢銆佸簱錛屼綘鍙互鎶婅繖涓獁ar鏀懼埌tomcat鐨剋ebapps鐩綍涓嬶紝灝變細(xì)鑷姩瑙e帇銆傚綋鐒朵綘涔熷彲浠ヨ嚜宸辨墜鍔ㄨВ鍘嬨?

Blazeds-spring.war鏄拰spring鏁村悎鐨勯厤緗?

Ds-console.war鏄痓lazeDS鐨勬帶鍒跺彴紼嬪簭

Samples.war鏄畼鏂規(guī)彁渚涚殑紺轟緥

Samples-spring.war鏄痵pring鍜宐lazeDS鐨勬暣鍚堢ず渚?

浜屻侀儴緗叉湇鍔″櫒绔▼搴?/h5>

1銆佹柊寤轟竴涓狫avaWeb Project宸ョ▼錛岀劧鍚庡湪WEB-INF/lib鐩綍涓坊鍔犲涓媕ar鍖?

clip_image004

榪欎簺jar鍖呭彲浠ュ湪blazeds.war鍖呬腑鐨刲ib鐩綍涓彲浠ユ壘鍒?

2銆?鐒跺悗浣犻渶瑕佸皢blazeds.war鍖呬腑鐨刉EB-INF鐩綍涓嬬殑flex鐩綍澶嶅埗鍒板綋鍓嶅伐紼嬬殑WEB-INF涓?

3銆?灝哹lazeds.war鍖呬腑鐨刉EB-INF鐩綍涓嬬殑web.xml鐨勯厤緗紝娣誨姞鍒板綋鍓嶅伐紼嬬殑web.xml鏂囦歡涓?

4銆?鏈鍚庡熀鏈殑鏍峰紡濡備笅

clip_image006

5銆?鏈鍚庝綘鍙戝竷褰撳墠宸ョ▼錛屽鏋滄病鏈夐敊璇氨琛ㄦ槑浣犳湇鍔″櫒绔儴緗叉垚鍔熶簡(jiǎn)銆?

6銆?緙栧啓涓涓狧elloWorld鐨刯ava紼嬪簭銆備唬鐮佸涓?

package com.hoo.flex;
 
/**
 * <b>function:</b> HelloWorld Example
 * @author hoojo
 * @createDate 2011-8-31 涓嬪崍06:11:27
 * @file HelloWorld.java
 * @package com.hoo.flex
 * @project BlazeDSServer
 * @blog http://blog.csdn.net/IBM_hoojo
 * @email hoojo_@126.com
 * @version 1.0
 */
public class HelloWorld {
    
    public HelloWorld() {
    }
    
    public String sayHello(String name) {
        return "[" + name + "] say hello!";
    }
}

灝變竴涓猻ayHello鏂規(guī)硶錛屾帴鏀朵竴涓弬鏁般?

涓夈丗lex瀹㈡埛绔▼搴?/h5>

1銆佸垱寤轟竴涓狥lex宸ョ▼錛屽湪閫夋嫨鏈嶅姟鍣ㄦ妧鏈殑鏃跺欙紝浣犻渶瑕侀夋嫨J2EE銆傜劧鍚庡嬀涓婁嬌鐢↗2EE鎶鏈紝鐒跺悗閫夋嫨BlazeDS銆傜偣鍑籒ext涓嬩竴姝?

clip_image008

2銆侀厤緗牴鏂囦歡澶癸紝涔熷氨鏄疛avaEE鏈嶅姟鍣ㄧ鍙戝竷紼嬪簭鍦╰omcat涓殑浣嶇疆銆傛垜榪欓噷鏄湪tomcat鐨剋ebapps鐨凚lazeDSServer涓紝BlazeDSServer鏄垜鐨勬湇鍔″櫒绔▼搴忋傛牴URL鏄闂湇鍔″櫒绔▼搴忕殑url錛涗笂涓嬫枃鐩綍瀵瑰簲宸ョ▼鍚嶇О錛涙渶鍚庡氨鏄緭鍑烘枃浠跺す鐩綍錛岃繖涓槸Flex鐨勬枃浠舵渶鍚庡湪tomcat涓繚瀛樼殑鐩綍銆?

clip_image010

3銆佹渶鍚庝綘闇瑕佽緗湇鍔″櫒绔殑services-config.xml鐨勮礬寰勫埌緙栬瘧鍙傛暟涓紝榪欎釜寰堥噸瑕侊紒濡傛灉浣犱笉璁劇疆鐨勮瘽錛岄偅涔堜綘鍦ㄥ悗闈㈢敤RemoteObject璋冪敤BlazeDS鐨勬椂鍊欙紝灝遍渶瑕佽緗甧ndpoint銆傝緗涓嬶細(xì)

clip_image012

-services鏄弬鏁伴敭錛屽悗闈㈢殑瀛楃涓叉槸鍊箋傛垜榪欓噷鏄緗瓸lazeDSServer鍙戝竷鍒皌omcat鐩綍涓殑services-config.xml鐨勮礬寰勩?

4銆佺紪璇慒lex鍓嶇浠g爜錛屼唬鐮佸涓嬶細(xì)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="BlazeDSHelloWorld.mxml" layout="absolute" minWidth="955" minHeight="600">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.rpc.AsyncToken;
            import mx.rpc.events.ResultEvent;
            
            private function faultHandler(event: Event): void {
                Alert.show(event.toString(), event.type);
            }
            
            private function resultHandler(event: ResultEvent): void {
                //event.result鏄湇鍔″櫒绔繑鍥炲璞?/pre>
                result.text = "Message錛? + event.result.toString();
            }
            
            private function sendHandler(): void {
                helloRemoteObject.sayHello(userName.text);
            }        
        ]]>
    </mx:Script>
    
    <!-- 褰撳伐紼嬫病鏈夎緗紪璇戝櫒-service鍙傛暟 鎴栨槸-context-root絳夊弬鏁幫紝灝遍渶瑕佹墜鍔ㄨ緗甧ndpoint鍙傛暟 -->
    <mx:RemoteObject 
        id="helloRemoteObject" 
        destination="helloWorld" 
        fault="faultHandler(event)" 
        result="resultHandler(event)"
        showBusyCursor="true"/>
    <mx:Panel x="10" y="10" width="272" height="148" layout="absolute" title="BlazeDS Remote HelloWorld Sample">
        <mx:Label x="10" y="22" text="璇瘋緭鍏ュ悕縐?/>
        <mx:TextInput x="70" y="19" id="userName"/>
        <mx:Button x="184" y="45" label="鍙戦? click="sendHandler()"/>
        <mx:Text x="10" y="79" id="result"/>
    </mx:Panel>    
</mx:Application>

棣栧厛浣犻渶瑕佸皢Java鏈嶅姟鍣ㄧ鐨凥elloWorld紼嬪簭閰嶇疆鍦╢lex鐨剅emoting-config.xml涓紝閰嶇疆濡備笅錛?

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" 
    class="flex.messaging.services.RemotingService">
 
    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>
    
    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    
    <destination id="helloWorld">    
        <properties>    
            <source>com.hoo.flex.HelloWorld</source>    
        </properties>    
    </destination> 
</service>

涓婇潰mxml浠g爜涓殑RemoteObject鐨刣estination瀵瑰簲鐨勫氨鏄痳emoting-config.xml閰嶇疆鏂囦歡涓殑destination鐨刬d銆傝繖涓槸涓涓瀵瑰簲鐨勶紝鐒跺悗鍦╯endHandler鏂規(guī)硶涓紝helloRemoteObject瀵瑰簲鐨勫氨鏄疪emoteObject鐨刬d錛岃宻ayHello鏂規(guī)硶瀵瑰簲鐨勫氨鏄厤緗湪remoting-config.xml涓殑destination鐨剆ource鐨凧ava鏈嶅姟鍣ㄧ浠g爜鐨勫叕鏈夋柟娉曘傛坊鍔犲畬閰嶇疆鍚庯紝闇瑕侀噸鍚痶omcat銆?

榪愯涓婇潰鐨刦lex紼嬪簭鍚庯紝濡傛灉杈撳叆鍙傛暟鍚庯紝鐐瑰嚮鍙戦侊紝鍙互鐪嬪埌鏈嶅姟鍣ㄧ榪斿洖鐨勬秷鎭氨璇存槑BlazeDS鏁村悎F(tuán)lex鎴愬姛浜?jiǎn)銆?

hoojo 2011-09-16 15:24 鍙戣〃璇勮
]]> 主站蜘蛛池模板: 亚洲乱码一二三四区麻豆| 四虎成人精品一区二区免费网站| 日韩亚洲精品福利| 亚洲色成人四虎在线观看| 成人免费午夜无码视频| 亚洲综合丁香婷婷六月香| 久久国产免费福利永久| 亚洲av乱码一区二区三区香蕉| 在线观看成人免费视频不卡| 亚洲免费观看网站| 成熟女人特级毛片www免费| 亚洲欧洲日韩极速播放| 性做久久久久免费观看| 香蕉国产在线观看免费| 久久久久亚洲av成人无码电影| 插鸡网站在线播放免费观看| 亚洲成A人片在线观看WWW| 久久亚洲免费视频| 亚洲乱码中文论理电影| 国产高清免费在线| 一级有奶水毛片免费看| 亚洲四虎永久在线播放| 皇色在线视频免费网站| 理论亚洲区美一区二区三区| 亚洲综合色成在线播放| 91精品国产免费入口| 亚洲欧洲精品成人久久曰| 亚洲乱码中文字幕手机在线| 亚洲免费观看视频| 亚洲sss综合天堂久久久| 免费**毛片在线播放直播| 很黄很污的网站免费| 亚洲综合av一区二区三区不卡| 无码不卡亚洲成?人片| 久久精品免费观看国产| 亚洲精品动漫免费二区| 国产v亚洲v天堂无码网站| 国产精品永久免费10000| 免费人成视频在线播放| 中文字幕亚洲精品| 免费人妻av无码专区|