锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV性色在线观看,亚洲精品亚洲人成在线观看,亚洲狠狠婷婷综合久久蜜芽http://www.tkk7.com/xzc0202/zh-cnSun, 11 May 2025 15:54:00 GMTSun, 11 May 2025 15:54:00 GMT60Java鍚屾鏈哄埗鎬葷粨--synchronizedhttp://www.tkk7.com/xzc0202/archive/2014/04/09/412147.htmlxzc0202xzc0202Wed, 09 Apr 2014 07:27:00 GMThttp://www.tkk7.com/xzc0202/archive/2014/04/09/412147.htmlhttp://www.tkk7.com/xzc0202/comments/412147.htmlhttp://www.tkk7.com/xzc0202/archive/2014/04/09/412147.html#Feedback0http://www.tkk7.com/xzc0202/comments/commentRss/412147.htmlhttp://www.tkk7.com/xzc0202/services/trackbacks/412147.htmlhttp://leo-faith.iteye.com/blog/177779
涓嶄箙鍓嶇敤鍒頒簡鍚屾錛岀幇鍦ㄥ洖榪囧ご鏉ュJAVA涓殑鍚屾鍋氫釜鎬葷粨錛屼互瀵瑰墠孌墊椂闂村伐浣滅殑鎬葷粨鍜岃嚜鎴戞妧鏈殑鏉$悊璇濄侸AVA涓璼ynchronized鍏抽敭瀛楄兘澶熶綔涓哄嚱鏁扮殑淇グ絎︼紝涔熷彲浣滀負鍑芥暟鍐呯殑璇彞錛屼篃灝辨槸騫蟲椂璇寸殑鍚屾鏂規硶鍜屽悓姝ヨ鍙ュ潡銆傚亣濡傚啀緇嗙殑鍒嗙被錛宻ynchronized鍙綔鐢ㄤ簬instance鍙橀噺銆乷bject reference錛堝璞″紩鐢級銆乻tatic鍑芥暟鍜宑lass literals(綾誨悕縐板瓧闈㈠父閲?韜笂銆?nbsp;
鍦ㄨ繘涓姝ラ槓榪頒箣鍓嶏紝鎴戜滑闇瑕佹槑紜嚑鐐癸細 
A錛庢棤璁簊ynchronized鍏抽敭瀛楀姞鍦ㄦ柟娉曚笂榪樻槸瀵硅薄涓婏紝浠栧彇寰楃殑閿侀兘鏄璞★紝鑰屼笉鏄妸涓孌典唬鐮佹垨鍑芥暟褰撲綔閿?#8213;―鑰屼笖鍚屾鏂規硶寰堝彲鑳借繕浼氳鍏朵粬綰跨▼鐨勫璞¤闂?nbsp;
B錛庢瘡涓璞″彧鏈変竴涓攣錛坙ock錛夊拰涔嬬浉鍏寵仈銆?nbsp;
C錛庡疄鐜板悓姝ユ槸瑕佸緢澶х殑緋葷粺寮閿浣滀負浠d環鐨勶紝鐢氳嚦鍙兘閫犳垚姝婚攣錛屾墍浠ュ敖閲忛伩鍏嶆棤璋撶殑鍚屾鎺у埗銆?nbsp;
鎺ョ潃鏉ヨ璁簊ynchronized鐢ㄥ埌涓嶅悓鍦版柟瀵逛唬鐮佷駭鐢熺殑褰卞搷錛?nbsp;

鍋囪P1銆丳2鏄悓涓涓被鐨勪笉鍚屽璞★紝榪欎釜綾諱腑瀹氫箟浜嗕互涓嬪嚑縐嶆儏鍐電殑鍚屾鍧楁垨鍚屾鏂規硶錛孭1銆丳2灝遍兘鑳藉璋冪敤浠栦滑銆?nbsp;

1錛?nbsp; 鎶妔ynchronized褰撲綔鍑芥暟淇グ絎︽椂錛岀ず渚嬩唬鐮佸涓嬶細 
Public synchronized void method(){ 
//…. 

榪欎篃灝辨槸鍚屾鏂規硶錛岄偅榪欐椂synchronized閿佸畾鐨勬槸鍝釜瀵硅薄鍛紵浠栭攣瀹氱殑鏄皟鐢ㄨ繖涓悓姝ユ柟娉曞璞°備篃灝辨槸璇達紝褰撲竴涓璞1鍦ㄤ笉鍚岀殑綰跨▼涓墽琛岃繖涓悓姝ユ柟娉曟椂錛屼粬浠箣闂翠細褰㈡垚浜掓枼錛岃揪鍒板悓姝ョ殑鏁堟灉銆備絾鏄繖涓璞℃墍灞炵殑Class鎵浜х敓鐨勫彟涓瀵硅薄P2鍗磋兘澶熶換鎰忚皟鐢ㄨ繖涓鍔犱簡synchronized鍏抽敭瀛楃殑鏂規硶銆?nbsp;
涓婅竟鐨勭ず渚嬩唬鐮佺瓑鍚屼簬濡備笅浠g爜錛?nbsp;
public void method() 

synchronized (this)      //  (1) 

       //….. 


(1)澶勭殑this鎸囩殑鏄粈涔堝憿錛熶粬鎸囩殑灝辨槸璋冪敤榪欎釜鏂規硶鐨勫璞★紝濡侾1銆傚彲瑙佸悓姝ユ柟娉曞疄璐ㄦ槸灝唖ynchronized浣滅敤浜巓bject reference銆?#8213;―閭d釜鎷垮埌浜哖1瀵硅薄閿佺殑綰跨▼錛屾墠鑳藉璋冪敤P1鐨勫悓姝ユ柟娉曪紝鑰屽P2鑰岃█錛孭1榪欎釜閿佸拰浠栨涓嶇浉騫詫紝紼嬪紡涔熷彲鑳藉湪榪欑鎯呭艦涓嬫憜鑴卞悓姝ユ満鍒剁殑鎺у埗錛岄犳垚鏁版嵁娣蜂貢錛氾紙 
2錛庡悓姝ュ潡錛岀ず渚嬩唬鐮佸涓嬶細 
public void method(SomeObject so) { 
synchronized(so) 

       //….. 


榪欐椂錛岄攣灝辨槸so榪欎釜瀵硅薄錛岃皝鎷垮埌榪欎釜閿佽皝灝辮兘澶熻繍琛屼粬鎵鎺у埗鐨勯偅孌典唬鐮併傚綋鏈変竴涓槑紜殑瀵硅薄浣滀負閿佹椂錛屽氨鑳藉榪欐牱鍐欑▼寮忥紝浣嗗綋娌℃湁鏄庣‘鐨勫璞′綔涓洪攣錛屽彧鏄兂璁╀竴孌典唬鐮佸悓姝ユ椂錛岃兘澶熷垱寤轟竴涓壒鍒殑instance鍙橀噺錛堜粬寰楁槸涓璞★級鏉ュ厖褰撻攣錛?nbsp;
class Foo implements Runnable 

       private byte[] lock = new byte[0];  // 鐗瑰埆鐨刬nstance鍙橀噺 
    Public void method() 

       synchronized(lock) { //… } 

//….. 

娉細闆墮暱搴︾殑byte鏁扮粍瀵硅薄鍒涘緩璧鋒潵灝嗘瘮浠諱綍瀵硅薄閮界粡嫻?#8213;―鏌ョ湅緙栬瘧鍚庣殑瀛楄妭鐮侊細鐢熸垚闆墮暱搴︾殑byte[]瀵硅薄鍙渶3鏉℃搷浣滅爜錛岃孫bject lock = new Object()鍒欓渶瑕?琛屾搷浣滅爜銆?nbsp;
3錛庡皢synchronized浣滅敤浜巗tatic 鍑芥暟錛岀ず渚嬩唬鐮佸涓嬶細 
      Class Foo 

public synchronized static void method1()   // 鍚屾鐨剆tatic 鍑芥暟 

//…. 

public void method2() 

       synchronized(Foo.class)   //  class literal(綾誨悕縐板瓧闈㈠父閲? 

       } 
   浠g爜涓殑method2()鏂規硶鏄妸class literal浣滀負閿佺殑鎯呭喌錛屼粬鍜屽悓姝ョ殑static鍑芥暟浜х敓鐨勬晥鏋滄槸鐩稿悓鐨勶紝鍙栧緱鐨勯攣寰堢壒鍒紝鏄綋鍓嶈皟鐢ㄨ繖涓柟娉曠殑瀵硅薄鎵灞炵殑綾伙紙Class錛岃屼笉鍐嶆槸鐢辮繖涓狢lass浜х敓鐨勬煇涓叿浣撳璞′簡錛夈?nbsp;
璁板緱鍦ㄣ奅ffective Java銆嬩竴涔︿腑鐪嬪埌榪囧皢 Foo.class鍜?P1.getClass()鐢ㄤ簬浣滃悓姝ラ攣榪樹笉鐩稿悓錛屼笉鑳界敤P1.getClass()鏉ヨ揪鍒伴攣榪欎釜Class鐨勭洰鐨勩侾1鎸囩殑鏄敱Foo綾諱駭鐢熺殑瀵硅薄銆?nbsp;
鑳藉鎺ㄦ柇錛氬亣濡備竴涓被涓畾涔変簡涓涓猻ynchronized鐨剆tatic鍑芥暟A錛屼篃瀹氫箟浜嗕竴涓猻ynchronized 鐨刬nstance鍑芥暟B錛岄偅涔堣繖涓被鐨勫悓涓瀵硅薄Obj鍦ㄥ綰跨▼涓垎鍒闂瓵鍜孊涓や釜鏂規硶鏃訛紝涓嶄細鏋勬垚鍚屾錛屽洜涓轟粬浠殑閿侀兘涓嶇浉鍚屻侫鏂規硶鐨勯攣鏄疧bj鎵灞炵殑閭d釜Class錛岃孊鐨勯攣鏄疧bj鎵灞炵殑榪欎釜瀵硅薄銆?nbsp;

灝忕粨濡備笅錛?nbsp;
鎼炴竻妤歴ynchronized閿佸畾鐨勬槸鍝釜瀵硅薄錛屽氨鑳藉府鍔╂垜浠璁℃洿瀹夊叏鐨勫綰跨▼紼嬪紡銆?nbsp;


鏇存湁涓浜涙妧宸ц兘澶熻鎴戜滑瀵瑰叡浜祫婧愮殑鍚屾璁塊棶鏇村姞瀹夊叏錛?nbsp;
1錛?nbsp; 瀹氫箟private 鐨刬nstance鍙橀噺+浠栫殑 get鏂規硶錛岃屼笉瑕佸畾涔塸ublic/protected鐨刬nstance鍙橀噺銆傚亣濡傚皢鍙橀噺瀹氫箟涓簆ublic錛屽璞″湪澶栫晫鑳藉緇曡繃鍚屾鏂規硶鐨勬帶鍒惰岀洿鎺ュ彇寰椾粬錛屽茍鏀瑰彉浠栥傝繖涔熸槸JavaBean鐨勬爣鍑嗗疄鐜版柟寮忎箣涓銆?nbsp;
2錛?nbsp; 鍋囧instance鍙橀噺鏄釜瀵硅薄錛屽鏁扮粍鎴朅rrayList浠涔堢殑錛岄偅涓婅堪鏂規硶浠嶇劧涓嶅畨鍏紝鍥犱負褰撳鐣屽璞¢氳繃get鏂規硶鎷垮埌榪欎釜instance瀵硅薄鐨勫紩鐢ㄥ悗錛屽張灝嗗叾鎸囧悜鍙︿竴涓璞★紝閭d箞榪欎釜private鍙橀噺涔熷氨鍙樹簡錛屽矀涓嶆槸寰堝嵄闄┿?榪欎釜鏃跺欏氨闇瑕佸皢get鏂規硶涔熷姞涓妔ynchronized鍚屾錛屽茍涓旓紝鍙繑鍥炶繖涓猵rivate瀵硅薄鐨刢lone()――榪欐牱錛岃皟鐢ㄧ寰楀埌鐨勫氨鏄璞″壇鏈殑寮曠敤浜嗐?/div>

xzc0202 2014-04-09 15:27 鍙戣〃璇勮
]]>XFire錛氳交鏉劇畝鍗曞湴寮鍙慦eb Serviceshttp://www.tkk7.com/xzc0202/archive/2006/10/08/73841.htmlxzc0202xzc0202Sun, 08 Oct 2006 07:40:00 GMThttp://www.tkk7.com/xzc0202/archive/2006/10/08/73841.htmlhttp://www.tkk7.com/xzc0202/comments/73841.htmlhttp://www.tkk7.com/xzc0202/archive/2006/10/08/73841.html#Feedback1http://www.tkk7.com/xzc0202/comments/commentRss/73841.htmlhttp://www.tkk7.com/xzc0202/services/trackbacks/73841.html

鎽樿:

XFire鏄竴涓厤璐圭殑寮婧怱OAP妗嗘灦錛屽畠涓嶄粎鍙互鏋佸ぇ鏂逛究鍦板疄鐜拌繖鏍蜂竴涓幆澧冿紝騫朵笖鍙互鎻愪緵璁稿Web Services瑙勮寖涓珮綰х壒寰侊紝榪欎簺鐗瑰緛鍦ㄥ鏁扮殑鍟嗕笟鎴栬呭紑婧愬伐鍏烽兘娌℃湁鎻愪緵銆備綘瑕佹伆褰撶殑鐞嗚В榪欎簺鍗曡瘝錛歡reat ease and simplicity錛堥潪甯歌交鏉懼拰綆鍗曪級銆備綘灝嗕細鐪嬪埌浣跨敤XFire鍒涘緩Web Services鏄涔堢殑綆鍗曘?
灝嗕綘鐨凱OJO鏂規硶鍙戝竷涓篧eb Services

鎽樿

闂竴涓?Net鐨勫紑鍙戣咃紝寮鍙慦eb Services鏈夊鍥伴毦錛熶粬浠細琚綘鐨勯棶棰橀椾箰錛屼粬浠細鍛婅瘔浣犳墍鏈夋楠よ姳璐圭殑鏃墮棿涓嶄細瓚呰繃涓鍒嗛挓銆傚啀闂竴涓婮ava寮鍙戣咃紝榪愭皵濂界殑璇濅綘浼氱鍒頒笂闈㈢殑鍥炵瓟錛屼竴鑸儏鍐典笅錛屼綘浼氬緱鍒頒竴涓畬鍏ㄤ笉鍚岀殑絳旀銆備粠Web Services寮曞叆鍒癑ava涓嚦浠婂凡緇?騫翠簡錛岀劧鑰屽畠浠嶇劧琚涓烘槸涓闂ㄨ緝鏂扮殑鎶鏈紝涓涓富瑕佺殑鍘熷洜灝辨槸浣跨敤Java瀹炵幇Web Services澶洶闅句簡銆傜幇鍦紝闅忕潃鏂頒竴浠eb Services寮曟搸XFire鐨勫彂甯冿紝榪欑鎯呭喌灝嗕細鍙戠敓鏄庢樉鐨勫彉鍖栥備嬌鐢╔Fire錛屼綘鍙互鎶奐ava綾繪柟娉曞彂甯冧負Web Services鑰屼笉闇瑕佺紪鍐欓澶栫殑浠g爜銆傚湪榪欑瘒鏂囩珷涓紝浣犲皢浼氱湅鍒癤Fire浣縒eb Services寮鍙戝彉寰楀涔堝鏄撳拰綆鍗曘?br />
Web Services浣挎垜浠兘澶熷湪緗戠粶涓婂緩绔嬪垎甯冨紡緋葷粺錛屽簲鐢ㄧ▼搴忕粍浠跺彲浠ラ氳繃浠諱綍騫沖彴銆佷換浣曡璦鍜屼換浣曟柟寮忚闂傛棤璁哄簲鐢ㄧ▼搴忓浣曞紑鍙戯紝浣跨敤浜嗕粈涔堣璦錛屼互鍙婅繍琛屽湪浠涔堟搷浣滅郴緇熷鉤鍙頒笂錛屽彧瑕佸畠浣滀負Web Service錛屽茍涓斾負鍗忓悓瑙e喅闂鑰岃璁★紝閭d箞浣犵殑搴旂敤紼嬪簭錛屼互浠諱綍璇█寮鍙戞垨鍦ㄤ換浣曞鉤鍙頒笂錛岄兘鍙互鍒╃敤瀹冪殑鏈嶅姟銆傝繖鏄疻eb Service鐨勪富瑕佹蹇點?br />
涓轟簡瀹炵幇Web Services鐨勫鉤鍙版棤鍏蟲у拰瀹炵幇璁塊棶鐙珛鎬э紝杞歡琛屼笟闇瑕侀伒寰竴浜涗綔涓烘爣鍑嗙殑鎶鏈傚叾涓竴浜涘寘鎷細
---XML錛氬湪Web Services鐜涓悇灞備箣闂磋繘琛屼紶閫掔殑榛樿鏁版嵁鏍煎紡銆?br />---SOAP錛氬皝瑁呭拰浜ゆ崲淇℃伅鐨勯粯璁ゅ崗璁傜涓嬈¤鎻愬嚭鏃訛紝瀹冩槸鍙彇Simple Object Access Protocol錛堢畝鍗曞璞¤闂崗璁級鐨勯瀛楁瘝銆備絾鏄幇鍦⊿OAP鏇村琚涓烘槸涓涓壒瀹氱殑鍚嶈瘝錛屼互瀹冭嚜宸辮屽懡鍚嶏紝鍚屾牱寰堝浜鴻涓鴻繖鏄敤璇嶄笉褰擄細SOAP瀹為檯涓婁笉鏄敤鏉ヨ闂璞$殑銆傚彟澶栵紝瀹冧篃涓嶅啀綆鍗曘?br />---WSDL錛圵eb Services Description Language錛學eb Services鎻忚堪璇█錛夛細鎻忚堪Web Services鐨勮璦銆傚敖綆″熀浜嶺ML騫朵笖鍙互琚漢鐞嗚В錛學SDL涓昏鏄敱鏈哄櫒澶勭悊錛岀敱瀹㈡埛绔▼搴忚鍙栧拰鐞嗚В銆?br />
涓嬮潰鐨勯珮綰у眰嬈″浘琛紝鍩轟簬WWW鍗忎細鍙戝竷鐨勨淲eb Services Architecture鈥濓紙Web Services鏋舵瀯錛夋枃妗o紝鏄劇ず浜嗚繖浜涙妧鏈湪瀹為檯鐨勫伐浣滅幆澧冧腑鏄浣曞彂鎸ヤ綔鐢細

image
榪欎釜嫻佺▼鍥炬樉紺轟簡Web Services涓殑鏍稿績鎶鏈槸濡備綍宸ヤ綔鐨勩?br />
榪欓噷錛孭rovider鏄彁渚涙湇鍔$殑搴旂敤紼嬪簭緇勪歡錛孯equester鏄嬌鐢ㄦ湇鍔$殑瀹㈡埛绔▼搴忋傚緢澶氬叾浠栨妧鏈篃浼氬弬涓庡埌浜や簰涓紝浣嗘槸榪欎釜鍥懼彧鏄劇ず浜嗗湪Web Services鐜涓繀闇鐨勬牳蹇冩妧鏈粍浠躲?br />
XFire鏄竴涓厤璐圭殑寮婧怱OAP妗嗘灦錛屽畠涓嶄粎鍙互鏋佸ぇ鏂逛究鍦板疄鐜拌繖鏍蜂竴涓幆澧冿紝騫朵笖鍙互鎻愪緵璁稿Web Services瑙勮寖涓珮綰х壒寰侊紝榪欎簺鐗瑰緛鍦ㄥ鏁扮殑鍟嗕笟鎴栬呭紑婧愬伐鍏烽兘娌℃湁鎻愪緵銆備綘瑕佹伆褰撶殑鐞嗚В榪欎簺鍗曡瘝錛歡reat ease and simplicity錛堥潪甯歌交鏉懼拰綆鍗曪級銆備綘灝嗕細鐪嬪埌浣跨敤XFire鍒涘緩Web Services鏄涔堢殑綆鍗曘?br />
鍋囧浣犵殑Web搴旂敤鏈変竴涓狫ava綾伙紝騫朵笖浣犳兂鎶婂畠鐨勪竴涓柟娉曞彂甯冧負Web Services錛屽綋浣跨敤XFire鏃訛紝浣犱笉闇瑕佺紪鍐欎竴琛岄澶栫殑Java浠g爜銆傚彧闇瑕佺紪杈戝彂甯冩弿榪扮錛岀劧鍚庝綘灝變細寰楀埌涓涓猈eb Services銆傛槸鐨勶紝瀹冪浉褰撳湴綆鍗曘傛垜浠潵鐪嬩竴涓緥瀛愩?br />
鐗堟潈澹版槑錛氫換浣曡幏寰桵atrix鎺堟潈鐨勭綉绔欙紝杞澆鏃惰鍔″繀淇濈暀浠ヤ笅浣滆呬俊鎭拰閾炬帴
浣滆?Shahid Ahmed ;mydeman
鍘熸枃:http://www.javaworld.com/javaworld/jw-05-2006/jw-0501-xfire.html
Matrix:http://www.matrix.org.cn/resource/article/2006-09-24/XFire_6bd1061c-4bc6-11db-978f-43b3336b7e51.html
鍏抽敭瀛?XFire;Web Services

涓涓畝鍗曠殑Java綾?/span>

鎴戜滑鐨勪緥瀛愭槸涓涓摱琛屼笟搴旂敤紼嬪簭錛屾湇鍔″櫒鏄繍琛屽湪J2SE1.4.2_07涓嬬殑Apache Tomcat5.5.7銆傚亣瀹氫綘宸茬粡浜嗚В濡備綍浣跨敤Java緙栧啓Web搴旂敤紼嬪簭錛屽茍鐭ラ亾搴旇濡備綍鎶婂畠閮ㄧ講鍒癆pache Tomcat鏈嶅姟鍣ㄤ笂銆傛垜浠殑Web搴旂敤紼嬪簭闈炲父綆鍗曪紱瀹冨彧鍋氫竴浠朵簨鈥斺斿皢璧勯噾浠庝竴涓處鎴瘋漿鍒板彟澶栦竴涓處鎴蜂笂銆備竴涓櫘閫氱殑Java綾籅ankingService鍖呭惈浜嗕竴涓彨鍋歵ransferFunds()鐨勬柟娉曟潵涓烘垜浠畬鎴愯繖欏瑰伐浣溿傚畠闇瑕佸洓涓緭鍏ュ弬鏁幫細
1銆伮犅犅犅犅犅犅犅燬tring fromAccount
2銆伮犅犅犅犅犅犅犅燬tring toAccount
3銆伮犅犅犅犅犅犅犅燿ouble amount
4銆伮犅犅犅犅犅犅犅燬tring currency

浠g爜濡備笅錛?br />
package com.mybank.xfire.example;

import java.text.NumberFormat;
import java.text.DecimalFormat;

/** XFire WebServices sample implementation class.
*/
public class BankingService implements IBankingService {
聽聽聽聽
聽聽聽聽//Default constructor.
聽聽聽聽public BankingService(){聽聽聽聽
聽聽聽聽}
聽聽聽聽
聽聽聽聽/** Transfers fund from one account to another.
聽聽聽聽*/
聽聽聽聽public String transferFunds(
聽聽聽聽聽聽聽聽String fromAccount, String toAccount, double amount, String currency){
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽String statusMessage = "";
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽//Call business objects and other components to get the job done.
聽聽聽聽聽聽聽聽//Then create a status message and return.
聽聽聽聽聽聽聽聽try {
聽聽聽聽聽聽聽聽聽聽聽聽NumberFormat formatter = new DecimalFormat("###,###,###,###.00");聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽statusMessage = "COMPLETED: " + currency + " " + formatter.format(amount)+
聽聽聽聽聽聽聽聽聽聽聽聽" was successfully transferred from A/C# " + fromAccount + " to A/C# " + toAccount;
聽聽聽聽聽聽聽聽} catch (Exception e){
聽聽聽聽聽聽聽聽聽聽聽聽statusMessage = "BankingService.transferFunds(): EXCEPTION: " + e.toString();
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽return statusMessage;
聽聽聽聽}
聽聽聽聽
}


鍦ㄨ繖閲屼綘鐪嬪埌浜嗕粈涔堝紓甯哥殑涓滆タ浜嗗悧錛熸垨璁告病鏈夛紝闄や簡榛樿鐨勬瀯閫犲嚱鏁幫紝綾誨瀷鏄痯ublic銆傝繖鏄繀欏葷殑銆傚惁鍒欙紝XFire涓嶈兘澶熷垵濮嬪寲榪欎釜綾匯?br />
鍥犱負浣跨敤鎺ュ彛鐨勮璁℃槸涓涓ソ鐨勫疄璺碉紝鎵浠ユ垜浠殑Java綾諱篃瀹炵幇浜嗕竴涓О涓篒BankingService鐨勬帴鍙c備唬鐮佸崄鍒嗙畝鍗曪細
package com.mybank.xfire.example;

public interface IBankingService {聽聽

聽聽聽聽public String transferFunds(
聽聽聽聽聽聽聽聽String fromAccount, String toAccount, double amount, String currency);
聽聽聽聽聽聽聽聽
}


鍦ㄥ疄闄呭疄鐜頒腑錛岃繖鏍蜂竴涓柟娉曞彲鑳藉寘鎷悇縐嶇被鍨嬬殑澶嶆潅璋冪敤銆佹煡璇㈠拰澶勭悊鎿嶄綔銆備絾鏄垜浠殑紺轟緥浠g爜宸茬粡鏈灝忓寲浜嗭紝浠ヨ嚦浜庢垜浠彲浠ラ泦涓簿鍔涘湪涓昏鐩爣涓婏細鎶婅繖涓柟娉曞彂甯冧負Web Services銆?br />
浣犲彲浠ョ湅鍒癇ankingService鏄竴涓櫘閫氱殑Java綾伙紝娌℃湁浠諱綍浠g爜鍛婅瘔鎴戜滑瀹冨皢浼氬湪Web Services涓嬌鐢ㄣ傚ソ鐨勶紝榪欓噷鎴戜滑涓嶉渶瑕佸鍔犱換浣曚笢瑗褲傛垜浠墍鏈夌殑宸ヤ綔閮藉湪閮ㄧ講鎻忚堪絎﹂噷瀹屾垚銆?br />
Web搴旂敤鐨勯儴緗叉弿榪扮

鍦↗ava涓紝Web搴旂敤紼嬪簭閫氬父闇瑕佽嚦灝戜竴涓儴緗叉弿榪扮錛堝彨鍋歸eb.xml錛夊鍏惰繘琛岄厤緗俋Fire鏈韓鏄竴涓熀浜巗ervlet鐨勫簲鐢ㄧ▼搴忋傚洜姝わ紝鎴戜滑闇瑕佸鍔犲繀瑕佺殑寮曠敤鍒版弿榪扮鏂囦歡涓傜劧鍚庢垜浠繕蹇呴』閰嶇疆灝嗚鍒涘緩鐨刉eb Services銆傛垜浠嬌鐢ㄤ竴涓О涓簊ervices.xml鐨勬柊鏂囦歡鏉ュ畬鎴愯繖浠朵簨銆?br />
web.xml
棣栧厛錛屼慨鏀箇eb.xml銆傛垜浠渶瑕佸鍔犱笅闈㈢殑XFire servlet鐩稿叧鐨勬潯鐩細
<servlet>
聽聽聽聽聽聽聽聽<servlet-name>XFireServlet</servlet-name>
聽聽聽聽聽聽聽聽<display-name>XFire Servlet</display-name>
聽聽聽聽聽聽聽聽<servlet-class>org.codehaus.xfire.transport.http.XfireConfigurableServlet
聽聽聽聽聽聽聽聽 </servlet-class>
聽聽聽聽</servlet>

聽聽聽聽<servlet-mapping>
聽聽聽聽聽聽聽聽<servlet-name>XFireServlet</servlet-name>
聽聽聽聽聽聽聽聽<url-pattern>/servlet/XFireServlet/*</url-pattern>
聽聽聽聽</servlet-mapping>
聽聽聽聽
聽聽聽聽<servlet-mapping>
聽聽聽聽聽聽聽聽<servlet-name>XFireServlet</servlet-name>
聽聽聽聽聽聽聽聽<url-pattern>/services/*</url-pattern>
聽聽聽聽</servlet-mapping>


services.xml
鐜板湪鎴戜滑涓嶅緱涓嶈涓涓嬫垜浠殑Web Services鐨勭敱浠涔堢粍鎴愮殑浜嗐傝繖鐢變竴涓彨鍋歴ervices.xml鐨勬枃浠跺畬鎴愶紝瀹冨瓨鏀懼湪META-INF/xfire鐩綍涓嬶紝鑰岃繖鏁翠釜鐩綍鏀懼湪WEB-INF/classes鏂囦歡澶逛腑錛屽畠鍦╓eb搴旂敤紼嬪簭鐨勬爣鍑嗙被璺緞涓傝繖閲屾槸services.xml涓殑鍩烘湰閰嶇疆鏉$洰錛?br />
<beans xmlns="http://xfire.codehaus.org/config/1.0">
聽聽
聽聽<service>
聽聽聽聽<name>Banking</name>
聽聽聽聽<namespace>mybank</namespace>
聽聽聽聽<serviceClass>com.mybank.xfire.example.IBankingService</serviceClass>
聽聽聽聽<implementationClass>com.mybank.xfire.example.BankingService</implementationClass>
聽聽</service>聽聽
聽聽
</beans>


璁╂垜浠湅鐪嬭繖閲岄兘鍖呭惈浜嗕粈涔堝唴瀹廣俉eb Services鐨勫畾涔夊寘鍚湪<service>鍏冪礌涓紝瀹冭繕鍚湁涓浜涘瓙鍏冪礌銆傜涓涓瓙鍏冪礌鏄?lt;name>錛屽畠鍙互鏄綘鎻愪緵浠諱綍鐨勫悎娉曞悕瀛椼傝繖灝嗕細琚鎴風紼嬪簭鍜屽叾瀹冮渶瑕佸畾浣嶄綘鐨勬湇鍔$殑緇勪歡鐢ㄥ埌銆備緥濡傦紝鍦ㄦ湇鍔″噯澶囧ソ浠ュ悗錛屼綘灝嗗湪嫻忚鍣ㄤ笂浣跨敤榪欎釜鍚嶅瓧鏉ユ煡鐪媁SDL銆?br />
涓嬩竴涓瓙鍏冪礌鏄?lt;namespace>銆備換浣曞悎娉曠殑XML鍚嶅瓧閮芥槸鍙互鐨勩?lt;namespace>鐢ㄦ潵鍞竴鏍囪瘑浣犵殑鏈嶅姟鐨勫悇涓弬鏁般?br /><serviceClass>鍏冪礌鍖呭惈浜咼ava綾葷殑鍚嶅瓧錛屽畠鎸囧畾浜嗘柟娉曠鍚嶃傚湪鎴戜滑鐨勪緥瀛愪腑錛屽畠鏄帴鍙BankingService銆傚鏋淛ava綾繪病鏈夊疄鐜頒換浣曟帴鍙o紝浣犲氨闇瑕佹妸綾葷殑鍚嶅瓧鏀懼湪榪欓噷銆傚湪浣犵殑Java綾繪垨鑰呮帴鍙d腑鍙兘鏈夊嚑涓柟娉曘傚彧闇瑕佷竴涓叆鍙f妸瀹冧滑鍏ㄩ儴鍙戝竷涓篧eb Services銆?br />
<implementationClass>淇濆瓨浜嗗疄鐜版柟娉曠殑Java綾誨悕銆傝繖鏄竴涓彲閫夊厓绱犮傚鏋滀笂涓涓厓绱?lt;serviceClass>鍖呭惈浜嗕竴涓帴鍙o紝閭d箞鐩稿簲鐨勫疄鐜扮被蹇呴』鍦ㄨ繖閲屾寚瀹氥?br />
灝辨槸榪欐牱銆傛垜浠殑Web Services閰嶇疆瀹屾垚浜嗐?br />
XFire鍜屽叾瀹冪被搴?/span>

鐜板湪鏄渶鍚庝竴姝ヤ簡錛岄渶瑕佸緱鍒版墍鏈夊繀闇鐨勭被搴撱傛垜浠庢牱寰楀埌瀹冧滑鍛紵鍘籜Fire緗戠珯錛屼笅杞絰fire-distribution-1.0.zip錛岀劧鍚庤В鍘嬪埌涓涓湰鍦版枃浠跺す銆傚鍒朵笅闈㈢殑jar鏂囦歡鍜屽畠鐨勫簱鏂囦歡澶瑰埌WEB-INF/lib涓細
鈥⒙犅犅犅犅犅犅犅燼ctivation-1.0.2.jar
鈥⒙犅犅犅犅犅犅犅燾ommons-codec-1.3.jar
鈥⒙犅犅犅犅犅犅犅燾ommons-httpclient-3.0.jar
鈥⒙犅犅犅犅犅犅犅燾ommons-logging-1.0.4.jar
鈥⒙犅犅犅犅犅犅犅爅axen-1.1-beta-8.jar
鈥⒙犅犅犅犅犅犅犅爅dom-1.0.jar
鈥⒙犅犅犅犅犅犅犅爈og4j-1.2.x.jar
鈥⒙犅犅犅犅犅犅犅爉ail-1.3.3_01.jar
鈥⒙犅犅犅犅犅犅犅爏pring-1.2.x.jar
鈥⒙犅犅犅犅犅犅犅爏tax-api-1.0.jar
鈥⒙犅犅犅犅犅犅犅爓sdl4j-1.5.2.jar
鈥⒙犅犅犅犅犅犅犅爓stx-asl-2.9.jar
鈥⒙犅犅犅犅犅犅犅爔bean-2.1.0.jar
鈥⒙犅犅犅犅犅犅犅爔bean-spring-2.2.jar
鈥⒙犅犅犅犅犅犅犅爔fire-all-1.0.jar
鈥⒙犅犅犅犅犅犅犅燲mlSchema-1.0.jar

涓鍒囧Ε褰撱傛垜浠潵閮ㄧ講鍜屽惎鍔ㄥ簲鐢ㄧ▼搴忋備負浜嗛儴緗茬ず渚嬪簲鐢紝鍙渶瑕佸鍒秝ebsvc.war鍒癆pache Tomcat鐨剋ebapps鏂囦歡澶逛腑錛屽啀絳夊緟鍑犵閽熴傚畠灝嗕細鑷姩鍚姩銆傝繖涓簲鐢ㄧ殑鍏ㄩ儴婧愪唬鐮佷篃鍖呭惈鍦ㄨ繖涓獁ar鏂囦歡涓傛垜浠殑紼嬪簭宸茬粡鍑嗗浣滀負涓涓猈eb Service浜嗐?br />
鎴戜滑濡備綍鐭ラ亾Web Service姝e湪宸ヤ綔鍛紵

涓轟簡浜嗚ВWeb Service鏄惁姝e湪宸ヤ綔錛屾垜浠渶瑕佹祴璇曘傞鍏堬紝鎴戜滑嫻嬭瘯鏉ョ湅WSDL鏄惁鍙敤銆傛垜浠湪嫻忚鍣ㄤ腑杈撳叆URL銆傚摢涓猆RL錛熷洜涓烘垜浠殑搴旂敤紼嬪簭鐨剋ar鏂囦歡鏄痺ebsvc.war錛屽茍涓斿湪services.xml涓粰鍑虹殑鏈嶅姟鍚嶆槸Banking錛學SDL鐨刄RL搴旇鏄細http://localhost:8080/websvc/services/Banking?wsdl銆?br />
璇鋒敞鎰忥細URL鐨勭涓閮ㄥ垎錛屼緥濡傦紝http://localhost:8080錛屽彲鑳戒細鏍規嵁浣犵殑搴旂敤鏈嶅姟鍣ㄤ笉鍚岃屼笉鍚屻傛棤璁烘庢牱錛屽綋浣犺緭鍏RL鍚庯紝灝嗕細鐪嬪埌涓涓猉ML鏂囨。錛屽畠鐨勬牴鍏冪礌鏄?lt;wsdl:definitions>銆傝繖涓枃妗e彨鍋氭湇鍔$殑WSDL銆傚鏋滀綘鐪嬪埌浜嗭紝榪欏氨鏄綘鐨勫簲鐢ㄤ綔涓篧eb Service宸茬粡鍙敤鐨勭涓涓瘉鏄庛?br />
浣嗘槸榪欎釜嫻嬭瘯鏄笉澶熺殑銆傚彲鑳戒細鍙戠敓榪欑鎯呭喌錛屽彲浠ョ湅鍒癢SDL錛屼絾鏄粠瀹㈡埛绔▼搴忓彲鑳戒細璁塊棶涓嶅埌鏈嶅姟銆傚洜姝や負浜嗘牳瀹炴湇鍔℃槸鍚﹀彲浠ヨ闂簡錛屾垜浠繀欏諱嬌鐢ㄤ竴涓鎴風榪涜鏈嶅姟鐨勫疄闄呰皟鐢ㄦ潵榪涜涓涓湡姝g殑嫻嬭瘯銆?br />
寮鍙戜竴涓鎴風

浣犲彲浠ヤ嬌鐢ㄤ換浣曠殑SOAP宸ュ叿鍒涘緩瀹㈡埛绔紝渚嬪錛?Net鎴栬匒pache Axis錛屾湁寰堝縐嶆柟娉曪細浣跨敤浠嶹SDL浜х敓鐨剆tubs錛屼嬌鐢ㄥ姩鎬佷唬鐞嗭紝絳夌瓑銆傚湪渚嬪瓙涓紝鎴戜滑浣跨敤涓涓姩鎬佷唬鐞嗭紝浠ヤ竴涓畝鍗曠殑Servlet褰㈠紡錛屽彨鍋歐sClient.java銆備負浜嗕繚鎸佷唬鐮佷袱鏈灝忥紝鎵鏈夊湪灞忓箷鏄劇ず鐨勫厓绱犻兘鏀懼湪浜哾oGet()鏂規硶涓傚Web Service鐨勫疄闄呰皟鐢ㄧ敱callWebService()鏂規硶瀹屾垚錛屽畠鐩稿綋鍦扮畝鍗曘傚拰涓嬮潰鐨勭被浼鹼細
/* Call the Web service
聽聽聽聽*
聽聽聽聽*/
聽聽聽聽public String callWebService(
聽聽聽聽聽聽聽聽String fromAccount, String toAccount, double amount, String currency)
聽聽聽聽聽聽聽聽throws MalformedURLException, Exception {
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽//Create a metadata of the service聽聽聽聽聽聽
聽聽聽聽聽聽聽聽Service serviceModel = new ObjectServiceFactory().create(IBankingService.class);聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽log.debug("callSoapServiceLocal(): got service model." );
聽聽
聽聽聽聽聽聽聽聽//Create a proxy for the deployed service
聽聽聽聽聽聽聽聽XFire xfire = XFireFactory.newInstance().getXFire();
聽聽聽聽聽聽聽聽XFireProxyFactory factory = new XFireProxyFactory(xfire);聽聽聽聽聽聽
聽聽聽聽
聽聽聽聽聽聽聽聽String serviceUrl = "http://localhost:8080/websvc/services/Banking";
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽IBankingService client = null;
聽聽聽聽聽聽聽聽try {
聽聽聽聽聽聽聽聽聽聽聽聽client = (IBankingService) factory.create(serviceModel, serviceUrl);
聽聽聽聽聽聽聽聽} catch (MalformedURLException e) {
聽聽聽聽聽聽聽聽聽聽聽聽log.error("WsClient.callWebService(): EXCEPTION: " + e.toString());
聽聽聽聽聽聽聽聽}聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽//Invoke the service
聽聽聽聽聽聽聽聽String serviceResponse = "";
聽聽聽聽聽聽聽聽try {
聽聽聽聽聽聽聽聽聽聽聽聽serviceResponse = client.transferFunds(fromAccount, toAccount, amount, currency);
聽聽聽聽聽聽 } catch (Exception e){
聽聽聽聽聽聽聽聽聽聽聽聽log.error("WsClient.callWebService(): EXCEPTION: " + e.toString());聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽serviceResponse = e.toString();
聽聽聽聽聽聽聽聽}聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽log.debug("WsClient.callWebService(): status=" + serviceResponse);聽聽聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽//Return the response
聽聽聽聽聽聽聽聽return serviceResponse;
聽聽聽聽}聽聽


榪欎釜浠g爜鏄浣曞伐浣滅殑鍛紵鎴戞潵瑙i噴涓涓嬶細棣栧厛錛屾垜浠垱寤轟竴涓湇鍔℃ā鍨嬶紝瀹冨寘鍚湇鍔$殑璇存槑鈥斺旀崲鍙ヨ瘽璇達紝灝辨槸鏈嶅姟鐨勫厓鏁版嵁銆傛垜浠嬌鐢╔Fire鐨凮bjectServiceFactory浠嶪BankingService.class鎺ュ彛鍒涘緩榪欎釜妯″瀷銆?br />
鎺ョ潃錛屼負XFire鑾峰緱涓涓唬鐞嗗伐鍘傚璞★紝瀹冨寘鍚簡甯歌鐨勪唬鐮侊紝涔熺浉褰撳湴綆鍗曞拰鏄撴噦銆傝繖涓姝ヤ腑娌℃湁浠諱綍鐗瑰畾搴旂敤鐨勪笢瑗褲備粠榪欎釜proxyFactory錛屼嬌鐢ㄦ湇鍔℃ā鍨嬪拰鏈嶅姟绔偣URL錛堢敤鏉ヨ幏寰梂SDL錛夛紝鎴戜滑鍙互寰楀埌涓涓湇鍔$殑鏈湴浠g悊銆?br />
灝辨槸瀹冧簡銆傝繖涓唬鐞嗗氨鏄疄闄呯殑瀹㈡埛绔傜幇鍦紝鎴戜滑鍙互璋冪敤瀹冪殑transferFunds()鏂規硶鏉ュ緱鍒版垜浠渶瑕佺殑Web Service銆?br />涓鏃︾ず渚嬪簲鐢ㄥ彂甯冨茍鍚姩錛屽氨鍙互灝濊瘯servlet URL錛?br />http://localhost:8080/websvc/ws銆?br />
榪欎釜Servlet浣跨敤榛樿鍙傛暟鏉ヨ皟鐢╓eb Service鍜屾樉紺烘帴鏀跺埌鐨勫搷搴斻傞〉闈㈢殑鏈鍚庝袱琛屽簲璇ヨ鍙栵細
Response Received
COMPLETED: CDN$ 500.00 was successfully transferred from A/C# 11111-01234 to A/C# 99999-05678

鐜板湪浣犲彲浠ョ‘瀹歐eb Service宸茬粡鍙戝竷騫朵笖鍦ㄨ繍琛屼腑浜嗐?br />
涓轟簡灝濊瘯涓嶅悓鐨勮緭鍏ュ鹼紝浣犲彲浠ヤ嬌鐢ㄥ畬鏁寸殑URL錛屼緥濡傦細
http://localhost:8080/websvc/ws?from=11-2345&to=77-9876&amt=250.00&cur=EUR銆?br />
鍩烘湰鐨刉eb Services寮鍙戞楠ゆ竻鍗?/span>

榪欎釜娓呭崟鎬葷粨浜嗗皢涓涓狫ava鏂規硶鍙戝竷涓篧eb Service鎵蹇呴』鐨勬楠わ細
1銆伮犅犅犅犅犅犅犅犳鏌ava綾葷殑鏂規硶鍜岄粯璁ゆ瀯閫犲嚱鏁扮‘淇濅負public
2銆伮犅犅犅犅犅犅犅犲鍔燲Fire servlet鐩稿叧鏉$洰鍒皐eb.xml涓?br />3銆伮犅犅犅犅犅犅犅犲垱寤簊ervices.xml錛屾妸瀹冩斁鍒癢EB-INF/classes/META-INF/xfire鐩綍涓?br />4銆伮犅犅犅犅犅犅犅犲鍔燲Fire鍜岀涓夋柟鍖呭埌浣犵殑Web搴旂敤鐨刉EB-INF/lib鏂囦歡澶逛腑

榪欏氨鏄墍鏈夐渶瑕佺殑姝ラ錛屾槸鐨勶紝鐩稿綋綆鍗曘?br />
XFire鐨勫叾浠栭珮綰х壒鎬?/span>

XFire鐨勪嬌鐢ㄥ彲鑳芥瘮杈冪畝鍗曪紝浣嗘槸鍦ㄧ壒鎬у拰鍔熻兘鎬т笂錛屽畠鍗村崰鎹潃棰嗗鑰呯殑浣嶇疆銆備笅闈㈡槸瀹冪殑楂樼駭鐗規э細
---鏈湴鏁版嵁緇戝畾鏀寔POJOs錛坧lain-old Java objects錛夈乆MLBeans銆丣AXB錛圝ava Architecture for XML Binding錛夈丆astor絳夌瓑銆傛暟鎹粦瀹氳鏄庝簡Web Services鐨刋ML璇鋒眰鍜屾槧灝勫埌Java瀵硅薄鐨刋ML鍝嶅簲銆?br />---浣跨敤StAX錛圫treaming API for XML錛夊鐞哫ML鏂囨。銆傚悓DOM鐨勫熀浜庢爲鍜孲AX鐨勪簨浠墮┍鍔ㄧ殑澶勭悊鏂瑰紡鐩告瘮錛孲tAX浣跨敤浜嗘媺錛坧ull錛夋満鍒訛紝瀹冧嬌澶勭悊鏇村揩閫燂紝鍐呭瓨鏁堢巼鏇撮珮銆?br />---鏀寔澶氱浼犺緭鍗忚錛屽HTTP銆丣MS錛圝ava Message Service錛夊拰JVM鍐呴儴浼犺緭銆?br />---宓屽叆寮忥紝榪欐槸XFire鐨勬牳蹇冨姛鑳戒箣涓銆備綘鍙互鎶婅繖涓猄OAP寮曟搸宓屽叆鍒頒綘鐨勫簲鐢ㄤ腑錛屽畬鍏ㄩ殣钘忔墍鏈塜Fire鐗瑰畾寮曠敤錛屽悓鏍鋒墍鏈夐厤緗兘鏄▼搴忛┍鍔ㄣ?br />---涓板瘜鐨凙PI錛屽畠浣縓Fire鍙珮搴﹁嚜瀹氫箟錛屽厑璁稿紑鍙戣呭湪涓嶅悓鐨勯樁孌墊埅鑾瘋姹傦紝騫朵笖瀵逛粬浠繘琛屽鐞嗐?br />---鍏煎鏈鏂扮殑鏍囧噯渚嬪SOAP1.1錛堟病鏈夊姞瀵嗚繙紼嬪伐紼嬭皟鐢紝鎴栬匯PC錛夊拰1.2銆乄SDL1.1銆乼he Web Services Interoperability Organization鈥檚 Basic Profile 1.0銆乄eb Services Addressing鍜學S-Security銆?br />
鏈閲嶈鐨勬槸錛孹Fire灞炰簬鏂頒竴浠eb Services寮曟搸銆備笉浠呬粎鏄惀閿鐢ㄨ錛屸滄柊涓浠b濇湁涓浜涢噸瑕佺殑鎰忎箟銆侫pache Axis鏄涓浠ava璇█鐨刉eb Services寮曟搸錛屽凡緇忔垚涓轟簡鎵鏈夊悗鏉ュ伐鍏風殑鍙傝冩爣鍑嗐傚湪榪囧幓鐨勫嚑騫撮噷錛孉xis浠ュ強榪欎簺鍏跺畠鐨勫伐鍏峰凡緇忓湪寰堝鐢熶駭鐜涓繘琛屼簡瀹炲湴嫻嬭瘯銆備粠涓緱鍑虹殑涓涓叧閿殑闂灝辨槸Web Services騫朵笉鏈閫傚悎RPC綾誨瀷鐨勯氫俊銆傚浜庢ц兘鍜屾晥鐜囷紝闈㈠悜鏂囨。鐨勬秷鎭艦寮忔槸鏈濂界殑鏂瑰紡銆備絾鏄疉pache Axis鍜屽緢澶氬叾浠栫殑Web Services寮曟搸閮借璁捐鎴愪簡闈㈠悜RPC鐨勶紙灝界瀹冧滑鏀寔鏂囨。褰㈠紡錛夈傜幇鍦紝鏁翠釜琛屼笟姝e湪寮鍙戞柊涓浠g殑SOAP寮曟搸錛岃璁′負闈㈠悜鏂囨。鐨勩侫pache宸茬粡瀹e竷緇撴潫鏃х増鏈殑Axis寮曟搸寮鍙戯紝鐜板湪涓撴敞浜嶢xis2錛岀幇鍦ㄥ畠鐨勯鍙戝竷鐗堟湰鏄?.95銆俋Fire鍦ㄤ粖騫寸殑2鏈堜喚鍙戝竷浜嗗畠鐨勭涓涓駭鍝佺増鏈紙1.0錛夈傚畠鐨勪笅涓涓増鏈紙1.1錛変粎浠呭湪鍑犱釜鏄熸湡涔嬪悗灝辮繘琛屼簡鍙戝竷銆?br />
鎬ц兘

Web Services闇瑕佹秷鑰楀緢澶氳祫婧愶紝浣嗘槸鎬ц兘鏂歸潰瀹冧滑涓嶆槸閭d箞寮曚漢娉ㄧ洰銆俋Fire鎵撶牬浜嗚繖縐嶈秼鍔褲傚畠娑堣楁洿灝戠殑鍐呭瓨錛堥儴鍒嗗洜涓?StAX鐨勪嬌鐢級錛屼絾鏄〃鐜板嵈姣斿鏁板彲姣旇緝鐨凷OAP寮曟搸鍑鴻壊銆備綘鍙互鍦ㄨ祫婧愪腑鎻愪緵鐨勯摼鎺ヤ腑鐪嬪埌姣旇緝鐨勭粨鏋溿?br />姝ゅ錛孹Fire榪樻彁渚涗簡鍚勭鏂規硶鏉ヨ繘涓姝ヤ紭鍖栨ц兘銆備竴涓柟娉曟槸浣跨敤JVM鍐呯疆浼犺緭錛坕n-JVM transport錛夈傚鏋滀綘鐭ラ亾Web Services鍜屽鎴風榪愯鍦ㄥ悓涓涓狫VM涓婏紝浣犲彲浠ラ夋嫨浣跨敤鏈湴浼犺緭錛屽畠鍙互澶у箙鎻愬崌鎬ц兘銆傚湪紺轟緥涓殑瀹㈡埛绔唬鐮侊紝鐪嬩互涓嬫寚瀹氭湇鍔$鐐筓RL鐨勮繖琛岋細
String serviceUrl = "http://localhost:8080/websvc/services/Banking";
鏇挎崲涓?br />String serviceUrl = "xfire.local://Banking";

浣犱細鐪嬪埌鎬ц兘涓婄殑鏄庢樉鎻愰珮錛屽洜涓哄畠緇曡繃浜嗘暣涓綉緇滃眰銆?br />
灞闄愭?/span>

XFire鏈変簺閲嶈鐨勫眬闄愭т綘搴旇娓呮錛?br />---寮鍙慦eb Services鐨勫ソ鐨勫疄璺墊槸浠嶹SDL寮濮嬨傚ぇ閮ㄥ垎鐨凷OAP寮曟搸鎻愪緵浜嗕粠WSDL鐢熸垚鏈嶅姟stub鐨勫伐鍏楓俋Fire涔熸彁渚涗簡榪欐牱涓涓伐鍏楓備絾鏄畠鏄熀浜庢敞閲婏紙annotations-based錛夌殑錛屽洜姝ら渶瑕丣2SE5.0銆傚浜庝粛鍧氭寔浣跨敤J2SE1.4.x鐨勪漢鏉ヨ錛屽畠涓嶆槸涓涓護浜烘媿鎵嬪彨濂界殑宸ュ叿錛屽洜涓烘垜浠湁寰堝鍏朵粬鏂瑰紡鏉ョ紪鍐欏鎴風錛屼竴涓氨鏄枃绔犱腑婕旂ず鐨勬柟寮忋?br />---闄勪歡鏀寔錛屽畠灝嗕細鍖呭惈鍦ㄦ湭鏉ュ彂琛岀殑鐗堟湰涓?br />---鏄撲簬瀛︿範鐨勭敤鎴峰悜瀵箋俋Fire鍥㈤槦鍦ㄨ繖涓柟闈㈣繕鏈夊緢澶氬伐浣滈渶瑕佸仛銆?br />
緇撹

Java褰撳墠鐨勮秼鍔挎槸綆鍖栨妧鏈殑浣跨敤銆傚洜姝わ紝鎴戜滑姝g湅鍒頒竴娉㈠熀浜嶱OJO鐨勫紑鍙戞垚灝便傚悓鏃訛紝闈㈠悜鏈嶅姟鏋舵瀯錛圫OA錛孲ervices-oriented architecture錛夊拰Web Services宸茬粡鍙樻垚浜嗗綋鍓嶈涓氱殑鐑偣璇濋銆俋Fire姝f槸鍦ㄨ繖縐嶆儏鍐典笅浜х敓鐨勩傚畠鑳藉浣縋OJO鍙戝竷涓烘渶灝戠殑Web Services錛岃屽彧闇瑕佷粯鍑烘渶灝忓寲鐨勫姫鍔涖備粠鑰岋紝瀹冧嬌甯屾湜浣跨敤榪欓」鎶鏈殑鍒濈駭寮鍙戣呯殑瀛︿範鏇茬嚎鍙樺緱騫崇紦銆傚悓鏃訛紝鐢變簬瀹冨吋瀹規渶鏂版爣鍑嗗拰鎻愪緵浜嗕赴瀵岀殑API錛孹Fire涓洪珮綰х敤鎴鋒彁渚涗簡鏇村鐨勫ぇ濂芥満浼氥?br />
鍏充簬浣滆?/b>
Shahid Ahmed鏄竴涓蔣浠舵灦鏋勫笀錛屽浠婂湪緹庡浗涓瀹朵富瑕佺殑鏃犵嚎榪愯鍟嗕綔鍜ㄨ宸ヤ綔銆備粬鍦?2騫村墠寮濮嬪紑鍙戣蔣浠訛紝褰撴椂Kaypro銆丱sborne銆丄pple II鍜孴RS-80s緇熸不鐫鏁翠釜鍦扮悆銆傚湪榪囧幓鐨?騫撮噷錛屼粬鏇村鐨勭簿鍔涢泦涓簬Java銆備粬鐜板湪鐨勫伐浣滃寘鎷琒OA銆乄eb Services銆佹秷鎭丳OJO銆丼pring銆丄jax絳夌瓑銆係hahid鏄竴涓蔣浠剁儹琛瘋咃紝姣忓ぉ閮藉湪濂嬫枟浠ユ眰鍦ㄦ妧鏈殑榪鋒亱鍜岀ぞ浼氱敓媧葷殑鐑埍涔嬮棿瀵繪壘騫寵 鐐廣?br />
璧勬簮錛?/b>
Matrix Java紺懼尯:http://www.matrix.org.cn
涓嬭澆鏈枃涓殑紺轟緥搴旂敤錛?a target="_new">http://www.javaworld.com/javaworld/jw-05-2006/xfire/jw-0501-xfire.zip
Web Services鏋舵瀯:http://www.w3.org/TR/ws-arch/
WSDL2.0錛堝師鏉ユ彁璁負WSDL1.2錛岀幇鍦ㄩ噸鏂板懡鍚嶄簡錛夛細絎竴閮ㄥ垎錛氭牳蹇冭璦錛圵3C Candidate Recommendation 27 March 2006錛?br />


xzc0202 2006-10-08 15:40 鍙戣〃璇勮
]]>
jsp + mysql 鐨勫垎欏電▼搴?/title><link>http://www.tkk7.com/xzc0202/archive/2006/10/08/73836.html</link><dc:creator>xzc0202</dc:creator><author>xzc0202</author><pubDate>Sun, 08 Oct 2006 07:22:00 GMT</pubDate><guid>http://www.tkk7.com/xzc0202/archive/2006/10/08/73836.html</guid><wfw:comment>http://www.tkk7.com/xzc0202/comments/73836.html</wfw:comment><comments>http://www.tkk7.com/xzc0202/archive/2006/10/08/73836.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/xzc0202/comments/commentRss/73836.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/xzc0202/services/trackbacks/73836.html</trackback:ping><description><![CDATA[<%@ page contentType="text/html; charset=gb2312" %><br /><%@ page language="java" %><br /><%@ page import="com.mysql.jdbc.Driver" %><br /><%@ page import="java.sql.*" %> <p><% <br />聽Connection sqlCon; //鏁版嵁搴撹繛鎺ュ璞?</p><p>聽Statement sqlStmt; //SQL璇彞瀵硅薄 </p><p>聽ResultSet sqlRst; //緇撴灉闆嗗璞?</p><p>聽String strCon; //鏁版嵁搴撹繛鎺ュ瓧絎︿覆 </p><p>聽String strSQL; //SQL璇彞 </p><p>聽int intPageSize; //涓欏墊樉紺虹殑璁板綍鏁?</p><p>聽int intRowCount; //璁板綍鎬繪暟 </p><p>聽int intPageCount; //鎬婚〉鏁?</p><p>聽int intPage; //寰呮樉紺洪〉鐮?</p><p>聽String strPage; </p><p>聽int i; </p><p>聽intPageSize = 2; //璁劇疆涓欏墊樉紺虹殑璁板綍鏁?</p><p>聽strPage = request.getParameter("page"); //鍙栧緱寰呮樉紺洪〉鐮?</p><p>聽if(strPage==null)<br />聽{ </p><p>聽聽//琛ㄦ槑鍦≦ueryString涓病鏈塸age榪欎竴涓弬鏁幫紝姝ゆ椂鏄劇ず絎竴欏墊暟鎹?</p><p>聽聽intPage = 1; </p><p>聽}<br />聽else<br />聽{ </p><p>聽聽//灝嗗瓧絎︿覆杞崲鎴愭暣鍨?</p><p>聽聽intPage = java.lang.Integer.parseInt(strPage); </p><p>聽聽if(intPage<1) intPage = 1; </p><p>聽} </p><p>聽//瑁呰澆JDBC椹卞姩紼嬪簭 </p><p>聽聽 //椹卞姩紼嬪簭鍚?/p><p>聽聽 String driverName="com.mysql.jdbc.Driver";</p><p>聽聽 //鏁版嵁搴撶敤鎴峰悕</p><p>聽聽 String userName="test";</p><p>聽聽 //瀵嗙爜</p><p>聽聽 String userPasswd="123456";</p><p>聽聽 //鏁版嵁搴撳悕<br />聽<br />聽聽 String dbName="shujuku";</p><p>聽聽 //琛ㄥ悕</p><p>聽聽 String tableName="biao";</p><p>聽聽 //鑱旂粨瀛楃涓?/p><p>聽聽 String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;</p><p>聽聽 Class.forName("com.mysql.jdbc.Driver").newInstance();</p><p>聽聽 sqlCon=DriverManager.getConnection(url);</p><p>聽聽 //鍒涘緩璇彞瀵硅薄 <br />聽<br />聽sqlStmt = sqlCon.createStatement(); //鎵цSQL璇彞 </p><p>聽聽聽 strSQL = "select name from " + tableName; </p><p>聽聽聽 //鎵цSQL璇彞騫惰幏鍙栫粨鏋滈泦 </p><p>聽聽聽 sqlRst = sqlStmt.executeQuery(strSQL); </p><p>聽聽聽 //鑾峰彇璁板綍鎬繪暟 </p><p>聽sqlRst.last(); </p><p>聽intRowCount = sqlRst.getRow(); </p><p>聽//璁扮畻鎬婚〉鏁?</p><p>聽intPageCount = (intRowCount+intPageSize-1) / intPageSize; </p><p>聽//璋冩暣寰呮樉紺虹殑欏電爜 </p><p>聽if(intPage>intPageCount) intPage = intPageCount; </p><p>%> </p><p><html> </p><p><head> </p><p><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </p><p><title>JSP鏁版嵁搴撴搷浣滀緥紼?- 鏁版嵁鍒嗛〉鏄劇ず - JDBC 2.0 - mysql</title> </p><p></head> </p><p><body> </p><p><table border="1" cellspacing="0" cellpadding="0"> </p><p><tr> </p><p><th>濮撳悕</th> </p><p></tr> </p><p><% if(intPageCount>0) </p><p>{ </p><p>聽//灝嗚褰曟寚閽堝畾浣嶅埌寰呮樉紺洪〉鐨勭涓鏉¤褰曚笂 </p><p>聽sqlRst.absolute((intPage-1) * intPageSize + 1); </p><p>聽//鏄劇ず鏁版嵁 </p><p>聽i = 0; </p><p>聽while(i<intPageSize && !sqlRst.isAfterLast()){ %> </p><p><tr> </p><p><td> </p><p><%=sqlRst.getString(1)%> </p><p></td> </p><p></tr> </p><p><% sqlRst.next(); </p><p>i++; </p><p>} </p><p>} </p><p>%> </p><p></table> </p><p>絎?lt;%=intPage%>欏?鍏?lt;%=intPageCount%>欏?</p><p><%if(intPage<intPageCount){%><a href="test1.jsp?page=<%=intPage+1%>">涓嬩竴欏?lt;/a><%}%> </p><p><%if(intPage>1){%><a href="test1.jsp?page=<%=intPage-1%>">涓婁竴欏?lt;/a><%}%> </p><p></body> </p><p></html> </p><p><% </p><p>//鍏抽棴緇撴灉闆?</p><p>sqlRst.close(); </p><p>//鍏抽棴SQL璇彞瀵硅薄 </p><p>sqlStmt.close(); </p><p>//鍏抽棴鏁版嵁搴?</p><p>sqlCon.close(); </p><p>%> <br />聽<br />聽<br />聽</p><img src ="http://www.tkk7.com/xzc0202/aggbug/73836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/xzc0202/" target="_blank">xzc0202</a> 2006-10-08 15:22 <a href="http://www.tkk7.com/xzc0202/archive/2006/10/08/73836.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://cqyouyongpx.com" target="_blank">亚洲欧洲另类春色校园网站</a>| <a href="http://yanshimlxg.com" target="_blank">久久亚洲精品中文字幕无码 </a>| <a href="http://njjngs.com" target="_blank">99久久精品毛片免费播放</a>| <a href="http://222222se.com" target="_blank">国产一级淫片免费播放电影</a>| <a href="http://6132423.com" target="_blank">亚洲国产精品无码久久久秋霞1</a>| <a href="http://j8j8x.com" target="_blank">成全影视免费观看大全二</a>| <a href="http://8dfk.com" target="_blank">亚洲日韩一区精品射精</a>| <a href="http://jyd56.com" target="_blank">吃奶摸下高潮60分钟免费视频</a>| <a href="http://26uuyy.com" target="_blank">亚洲av综合日韩</a>| <a href="http://xyyfamily.com" target="_blank">亚洲精品一级无码鲁丝片</a>| <a href="http://fantoment.com" target="_blank">成人福利在线观看免费视频</a>| <a href="http://www04ggg.com" target="_blank">亚洲中文字幕成人在线</a>| <a href="http://wxzg66.com" target="_blank">全黄大全大色全免费大片</a>| <a href="http://zdmaid.com" target="_blank">欧洲美熟女乱又伦免费视频</a>| <a href="http://lswqn.com" target="_blank">亚洲成年轻人电影网站www</a>| <a href="http://xdxsw.com" target="_blank">好看的亚洲黄色经典</a>| <a href="http://cndianxian.com" target="_blank">无码午夜成人1000部免费视频</a>| <a href="http://929119.com" target="_blank">国产亚洲一区二区三区在线不卡</a>| <a href="http://222mp3.com" target="_blank">国产免费高清69式视频在线观看</a>| <a href="http://wwwkckc.com" target="_blank">亚洲国产日韩在线视频</a>| <a href="http://znboxcdn107.com" target="_blank">99re在线免费视频</a>| <a href="http://pengkaimjg.com" target="_blank">国产精品亚洲自在线播放页码</a>| <a href="http://www19977.com" target="_blank">日本不卡高清中文字幕免费</a>| <a href="http://s8sb.com" target="_blank">www免费黄色网</a>| <a href="http://zzyqr.com" target="_blank">亚洲综合一区二区精品导航</a>| <a href="http://www-15706.com" target="_blank">免费精品人在线二线三线区别</a>| <a href="http://91tapp.com" target="_blank">亚洲av无码一区二区三区在线播放</a>| <a href="http://gylscm.com" target="_blank">免费观看亚洲人成网站</a>| <a href="http://liexion.com" target="_blank">在线看片免费人成视频福利</a>| <a href="http://cn-zggx.com" target="_blank">亚洲高清视频免费</a>| <a href="http://499k.com" target="_blank">国产免费黄色大片</a>| <a href="http://xj47777.com" target="_blank">国产精品免费高清在线观看</a>| <a href="http://conghui8.com" target="_blank">久久亚洲精品国产亚洲老地址</a>| <a href="http://dghxm168.com" target="_blank">一区国严二区亚洲三区</a>| <a href="http://ynkaishan.com" target="_blank">免费人成在线观看网站品爱网</a>| <a href="http://yiuuu.com" target="_blank">亚洲国产欧美日韩精品一区二区三区</a>| <a href="http://5ggy.com" target="_blank">亚洲性猛交XXXX</a>| <a href="http://508009.com" target="_blank">最近最好的中文字幕2019免费</a>| <a href="http://266hd.com" target="_blank">一级一级一级毛片免费毛片</a>| <a href="http://kingco-glaze.com" target="_blank">亚洲v高清理论电影</a>| <a href="http://qq-gm.com" target="_blank">国产做床爱无遮挡免费视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>