lbom

          小江西

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            18 隨筆 :: 21 文章 :: 69 評(píng)論 :: 0 Trackbacks

          2014年1月24日 #

          昨日年終總結(jié)會(huì),公司總裁給出IT產(chǎn)業(yè)未來發(fā)展的幾個(gè)新趨勢(shì),值得我們這些從事軟件工作的人員沉思,現(xiàn)對(duì)他的發(fā)言摘錄如下:
          1)管理虛擬化:有形的組織型管理和虛擬的IT流程管理相結(jié)合管理模式;
          2)制造虛擬化:由生產(chǎn)線工人和由程序控制的機(jī)器人相結(jié)合的生產(chǎn)模式;
          3)渠道虛擬化:由實(shí)體銷售店和虛擬的網(wǎng)上銷售相結(jié)合的渠道管理模式;
          4)服務(wù)虛擬化:實(shí)體保養(yǎng)維修和遠(yuǎn)程診斷,軟件更新相結(jié)合的服務(wù)模式;
          5)組織虛擬化:垂直的組織機(jī)構(gòu)和橫向的項(xiàng)目型組織機(jī)構(gòu)相結(jié)合的企業(yè)組織模式。
          posted @ 2014-01-24 22:28 lbom 閱讀(289) | 評(píng)論 (0)編輯 收藏

          2011年10月10日 #

          今天,花費(fèi)1個(gè)小時(shí),研究了一下在Windows下,使用Telent登錄至UNIX的腳本,現(xiàn)將其貼下,以供下次使用(tt.bat)

           

           

          @echo off
          echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs
          rem ----------------UNIX IPAddress
          echo sh.SendKeys "open 10.0.18.100{ENTER}" >>telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs
          rem ----------------userID
          echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs
          rem ----------------password
          echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs

          echo WScript.Sleep 3000 >>telnet_tmp.vbs

          echo sh.SendKeys "ls {ENTER}">>telnet_tmp.vbs

          start telnet

          cscript //nologo telnet_tmp.vbs

          rem del telnet_tmp.vbs

           

          posted @ 2011-10-10 16:02 lbom 閱讀(4035) | 評(píng)論 (1)編輯 收藏

          2010年9月25日 #

          1)啟動(dòng)LiveWriter客戶端

          2)添加Blog帳戶:

          image image

          3)設(shè)置日志類型:

          image

          4)連接測試

          posted @ 2010-09-25 18:02 lbom 閱讀(318) | 評(píng)論 (0)編輯 收藏

          2010年4月2日 #

          很久沒有動(dòng)手寫WebService了,這次,借項(xiàng)目間隙,對(duì)系統(tǒng)進(jìn)行一個(gè)小改造,將一部分功能使用WS進(jìn)行封裝,為下一步異構(gòu)系統(tǒng)集成打下基礎(chǔ)。

          但在WS化時(shí),由于日久生疏,一個(gè)小小的WS化變動(dòng),卻花了整整好幾天時(shí)間!為此,狠下以來,將其過程進(jìn)行記錄,以便下次參考。

           

          WS整體流程:

          clip_image001

          以下分別介紹:

          1、設(shè)計(jì)和實(shí)現(xiàn)WebService服務(wù)端功能組件,用于統(tǒng)一處理針對(duì)本應(yīng)用系統(tǒng)所需進(jìn)行WebService化的邏輯實(shí)現(xiàn)。并將系統(tǒng)邏輯處理中的對(duì)象轉(zhuǎn)成序列化后的String對(duì)象,以符合WebService交互標(biāo)準(zhǔn)。

          clip_image002

          2、根據(jù)SBPApi.java,生成WSDL等:通過Eclipse右鍵菜單中的WebService-->Create Web Service項(xiàng)。完成后,會(huì)在web目錄下建立wsdl目錄和SBPApi.wsdl,在WEB-INF目錄下建立(改寫)server-config.wsdd等文件,并完成對(duì)web.xml的修改。其操作流程示如下:

          clip_image003

          3、根據(jù)SBPApi.wsdl,生成WebService客戶端開發(fā)包和部署文件:

          1)為不影響已有項(xiàng)目,可另建java Web項(xiàng)目;

          2)將wsdl目錄復(fù)制至新項(xiàng)目對(duì)應(yīng)的web目錄下;

          3)通過eclipse已提供的webService插件(右鍵)功能,生成客戶端開發(fā)包所各文件。此時(shí),所生成的文件與服務(wù)端對(duì)象文件結(jié)構(gòu)一至。

          clip_image004

          4)調(diào)整關(guān)聯(lián)引用文件,將其調(diào)整至客戶端開發(fā)包,從而避免與服務(wù)器端的引用路徑重復(fù)而引發(fā)不便,并將服務(wù)器SDK中已有文件刪除。

          clip_image005

          5)建立客戶端的快速使用代理SBPClient.java,對(duì)WebService服務(wù)端交互工作的SBPApiSoapBindingStub.java進(jìn)行客戶端封裝,并根據(jù)服務(wù)端中交互對(duì)象進(jìn)行反向工程,其示例結(jié)構(gòu)如下:

          clip_image006

          6)將clientApi下的所有文件打包后,加入測試項(xiàng)目進(jìn)行測試。此時(shí),因客戶端所使用的服務(wù)端對(duì)象未包含在WebService客戶端開發(fā)包中,因此需要將服務(wù)端對(duì)象也一同打包。

          7)測試。

          4、開發(fā)環(huán)境:Eclipse3.3.1.1 + JDK1.5.06 + Apache Axis version: 1.4

          posted @ 2010-04-02 15:45 lbom 閱讀(2175) | 評(píng)論 (4)編輯 收藏

          2010年3月10日 #

          在一次基于多線程的編碼測試中,發(fā)現(xiàn)繼承Runnable接口的線程實(shí)現(xiàn)類在運(yùn)行時(shí)并未按預(yù)計(jì)啟動(dòng)多線程,經(jīng)分析和比較后,找出問題所現(xiàn),現(xiàn)將其記錄下來,以供分享。

          Java中,多線程編程中的線程編寫,有兩種方式,即擴(kuò)展Thread基類或繼承Runnable接口;例如:

          public class T extends Thread {

          public void run() {

          ……

          }

          }

          public class R implements Runnable {

          public void run() {

          ……

          }

          }

          對(duì)于擴(kuò)展Thread的實(shí)現(xiàn)類T,可以使用T.start()來啟動(dòng)此線程;如

          public static void main(String[] args) {

          Thread t = new T();

          t.start();

          }

          但對(duì)于繼承Runnable接口的實(shí)現(xiàn)類R,因接口中并沒有提供直接啟動(dòng)線程的start()方法,只有一個(gè)線程主邏輯運(yùn)行的run()方法。此時(shí),如執(zhí)行run(),會(huì)因?yàn)镽.run()只是作為此線程實(shí)現(xiàn)類的一個(gè)方法,并未在主線程之外,啟動(dòng)另一個(gè)線程,從而導(dǎo)致R.run()阻斷主線程繼續(xù)向下執(zhí)行;并未達(dá)到多線程運(yùn)行的目的。

          錯(cuò)誤啟動(dòng)代碼如下:

          public static void main(String[] args) {

          R r = new R();

          r.run();

          }

          那么,如何使用另外線程來啟動(dòng)繼承Runnable接口的實(shí)現(xiàn)類呢?以下就是它的正確的使用方式:

          public static void main(String[] args) {

          R r = new R();

          Thread t = new Thread(r);

          t.start();

          }

          此時(shí),需注意,在主線程執(zhí)行時(shí),需等待子線程執(zhí)行,否則,當(dāng)主線程結(jié)束后,子線程也將結(jié)束。

          posted @ 2010-03-10 16:48 lbom 閱讀(1589) | 評(píng)論 (2)編輯 收藏

          2010年2月8日 #

          需求:

          系統(tǒng)A與系統(tǒng)B分別部署在不同域的兩臺(tái)服務(wù)器中,但它們的身份都統(tǒng)一在身份認(rèn)證服務(wù)器中;身份認(rèn)證信息以Session方式存貯于各自系統(tǒng)中,并輔以cookie進(jìn)行使用。

          當(dāng)用戶在A系統(tǒng)登錄后,訪問B系統(tǒng)時(shí),由于是跨域訪問,導(dǎo)致身份信息不能正確的傳遞到B系統(tǒng)中,從而致使用戶需在B系統(tǒng)中重新登錄。

          clip_image001[6]

          解決方案:

          處理這類跨域訪問時(shí),我們最先使用從B系統(tǒng)向C通過HttpRequest(類AJAX請(qǐng)求)的方式獲取身份信息,此方式好處是同步處理,方便用使用;但其限制諸多,如需設(shè)置信任站點(diǎn)、用戶訪問確認(rèn)等,甚至,在對(duì)應(yīng)用服務(wù)器作了一次安全升級(jí)后,根本無法訪問了。因此,需另行開辟途徑,于是,在同事建議下,我們使用IFrame內(nèi)嵌跨域驗(yàn)證網(wǎng)頁,來解決此問題。

          1、原理設(shè)計(jì):用戶在訪問B系統(tǒng)時(shí),先使用一內(nèi)置的iframe,并將iframe的src指向身份認(rèn)證服務(wù)器系統(tǒng)代理驗(yàn)證接口;如果用戶已經(jīng)在A系統(tǒng)中進(jìn)行過登錄,即A域了中已存在著身份認(rèn)證信息后,身份認(rèn)證服務(wù)器中也將具有其身份信息將其附帶著身份認(rèn)證信息后重定向訪問B系統(tǒng)代理接口;B系統(tǒng)代理驗(yàn)證接口在接收到由A系統(tǒng)傳遞而來的身份認(rèn)證信息后,通過身份認(rèn)證服務(wù)器驗(yàn)證后,在B系統(tǒng)所在域重建身份認(rèn)證信息。

          2、實(shí)現(xiàn)邏輯貼碼:

          1)B系統(tǒng)代理驗(yàn)證接口:

          (1)IFrame邏輯貼碼:

          clip_image002[6]

          (2)JS檢測是否通過認(rèn)證邏輯貼碼:

          clip_image003[6]

          2)身份認(rèn)證服務(wù)器端接口(JSP):

          clip_image004[6]

          3、注意事項(xiàng):

          1)由于身份認(rèn)證中心使用cookie作為身份標(biāo)識(shí),因此,需要用戶在瀏覽器中允許使用cookie的設(shè)置;

          2)由于在iframe中進(jìn)行跨域重定向,因此需在IE安全中的跨域?yàn)g覽子框架項(xiàng)設(shè)為啟用:

          clip_image005[6]

          4、源碼文件:

          ……

          posted @ 2010-02-08 17:55 lbom 閱讀(3510) | 評(píng)論 (3)編輯 收藏

          2009年12月10日 #

          在windows下進(jìn)行j2ee項(xiàng)目開發(fā)和部署時(shí),常需要對(duì)系統(tǒng)存在問題進(jìn)行更深入的分析。由此,實(shí)時(shí)的javacore就是分析的最佳方式之一。但如何以最方便直接的方式產(chǎn)生javacore文件,就是這項(xiàng)工作必需做的準(zhǔn)備工作了。

          1、通過dos窗口,進(jìn)入至jdk安裝目錄下的bin目錄中;

          2、運(yùn)行jconsole.exe,并設(shè)置信息輸出的目標(biāo)文件,以便于分析,否則將直接輸出至屏幕上;

          image

          3、連接正在運(yùn)行的目標(biāo)jvm;

          image

          4、連接后的jconsole如下:

          image

          5、通過通過Ctrl+Break組合鍵,產(chǎn)生javacore至指定文件中。

          6、下一步就是對(duì)所產(chǎn)生的javacore文件進(jìn)行具體的分析和使用了。

          posted @ 2009-12-10 15:00 lbom 閱讀(2367) | 評(píng)論 (2)編輯 收藏

          2009年10月29日 #

          某日,公司進(jìn)行年度一次的體檢!

          在連續(xù)查出10個(gè)脂肪肝后,醫(yī)生對(duì)第11個(gè)進(jìn)來檢查的人說:“等會(huì),我們的B超機(jī)好像出問題了,等檢修后再進(jìn)行”

          這是一個(gè)真實(shí)的事件,我們這些IT行業(yè)的從業(yè)人員,多坐少動(dòng),壓力大,時(shí)間長,導(dǎo)致體質(zhì)差的邊醫(yī)生都懷疑機(jī)器了!

          唉!

          posted @ 2009-10-29 15:32 lbom 閱讀(337) | 評(píng)論 (0)編輯 收藏

          2009年10月15日 #

          一、項(xiàng)目建立及應(yīng)用實(shí)現(xiàn)

          1、建立J2ME項(xiàng)目

          clip_image001

          2、在完成開發(fā)后,進(jìn)入Application Descriptor編輯界面

          clip_image002

          3、因默認(rèn)情況下,Application Descriptor文件中未定義MIDlet啟動(dòng)對(duì)象,因此需使用EditPlus或記事本等文本編輯器,編輯Application Descriptor文件(位于項(xiàng)目根目錄下),并添加以下項(xiàng)目,如:

          clip_image003

          4、運(yùn)行Application Descriptor編輯界面中的Lanuch as enumlated Java ME JAD,進(jìn)行測試

          clip_image004

          5、在步驟4之后,會(huì)在項(xiàng)目根目錄下的.mtj.tmp中生成LaunchFromJAD子目錄,其中的worm.jad和worm.jar即是手機(jī)程序的安裝文件

          clip_image005

          6、將worm.jad和worm.jar復(fù)制至手機(jī)中,運(yùn)行worm.jad進(jìn)行安裝后,即可使用

          二、問題分析:

          1、如報(bào)【文件不完整】錯(cuò)誤,則檢查worm.jad中的項(xiàng)目是否完整。在Eclipse中使用Lanuch as enumlated Java ME JAD測試通過,并自動(dòng)生成的此文件,一般都是完整的,不需作任何修改。

          2、如報(bào)【版本錯(cuò)誤】,則檢查您在Eclipse中使用的的模擬器版本是否是您手機(jī)所支持的,出現(xiàn)此錯(cuò)誤后,將模擬器版本調(diào)低試試。其位置如下

          clip_image006

          三、開發(fā)環(huán)境:

          1、java JDK1.6.0_10;

          2、EclipseV3.3.1.1;

          3、sun公司J2ME-WTK開發(fā)包:sun_java_wireless_toolkit-2_5_2-ml-windows.exe

          4、Eclipse移動(dòng)應(yīng)用開發(fā)包:eclipseme.feature_1.7.9_site.zip

          posted @ 2009-10-15 17:50 lbom 閱讀(1482) | 評(píng)論 (0)編輯 收藏

          2009年10月7日 #

           

           

          消息中心產(chǎn)品簡介

          產(chǎn)品簡介

          XXX產(chǎn)品框架中,我們根據(jù)產(chǎn)品發(fā)展規(guī)劃和業(yè)務(wù)領(lǐng)域需要,使用基于JMS技術(shù),通過應(yīng)用WEBService,開發(fā)了消息中心中間件(簡稱MC)。通過消息中間件,我們可以實(shí)現(xiàn)各系統(tǒng)間的異步數(shù)據(jù)交換和事務(wù)處理、執(zhí)行不需前臺(tái)使用人員干預(yù)的如后臺(tái)業(yè)務(wù)和數(shù)據(jù)同步工作,也可用來處理一些受到安全和其它一些因素制約,導(dǎo)致無法直接通過數(shù)據(jù)庫或應(yīng)用系統(tǒng)進(jìn)行處理的受限業(yè)務(wù)。

          消息中心中間件,包括消息總線和消息客戶端兩部分:消息客戶端負(fù)責(zé)業(yè)務(wù)類消息實(shí)例的產(chǎn)生、發(fā)送消息實(shí)例到消息總線、接收從消息總線轉(zhuǎn)發(fā)而來的消息實(shí)例、將收到的消息實(shí)例交由其載體應(yīng)用系統(tǒng)進(jìn)行與之對(duì)應(yīng)的業(yè)務(wù)處理等活動(dòng);消息總線負(fù)責(zé)接收從消息客戶端產(chǎn)生并發(fā)送而來的消息實(shí)例、消息重建、根據(jù)消息配置進(jìn)行消息實(shí)例重建,將重建后的消息實(shí)例轉(zhuǎn)發(fā)至對(duì)應(yīng)的消息客戶端等活動(dòng)。

          消息客戶端與XXX各應(yīng)用系統(tǒng)集成在一起,并通過應(yīng)用系統(tǒng)開放WEBService端口進(jìn)行消息的發(fā)送和接收等,從而避免單獨(dú)部署和發(fā)布所帶來的困難和額外資源消耗。消息總線可單獨(dú)部署,也可和消息客戶端一樣,與XXX應(yīng)用系統(tǒng)集成部署,在XXX產(chǎn)品框架下,有且只需要一套消息總線即可滿足需要。消息配置中心,其作用包括配置和管理消息中心各組成部分的部署方式和訪問信息,以此將消息中心各部有機(jī)的聯(lián)系起來;同時(shí),各消息業(yè)務(wù)應(yīng)用,也使用配置文件進(jìn)行配置化管理,并與消息中心各組成部分進(jìn)行關(guān)聯(lián)配置,從而形成一個(gè)統(tǒng)一且開放的整體;其它的如性能優(yōu)化處理、日志記錄等也在配置中心進(jìn)行配置和管理。

          應(yīng)用現(xiàn)狀

          在消息中間件V1.0版本開發(fā)完成后,我們即將其投入實(shí)用。在XXX各分子系統(tǒng)這近一年時(shí)間的運(yùn)行和使用過程中,消息中心很好的完成了預(yù)定任務(wù),其可靠性、可擴(kuò)展性和適用性得到很好的驗(yàn)證。以此為據(jù),通過使用消息中心,開發(fā)出基于消息中心的客戶化應(yīng)用和業(yè)務(wù)活動(dòng)也在持續(xù)的增加中,到現(xiàn)在為止,已經(jīng)有包括網(wǎng)絡(luò)檢測、信息同步、配置更新、電子目錄樹更新、權(quán)限同步等諸多應(yīng)用是基于消息中心應(yīng)用開發(fā),并很好的使用在XXX各分子系統(tǒng)的測試和內(nèi)網(wǎng)正式環(huán)境中。

          問題出現(xiàn)、描述、分析與處理記錄

          問題出現(xiàn)

          在XXX系統(tǒng)正式接入外網(wǎng)后,通過對(duì)業(yè)務(wù)進(jìn)行跟蹤,發(fā)現(xiàn)外網(wǎng)用戶(系統(tǒng))所產(chǎn)生的消息實(shí)例無法正常的到達(dá)指定的消息總線及消息客戶端。最主要的體現(xiàn)是權(quán)限同步消息應(yīng)用無法正常完成的問題,導(dǎo)致外網(wǎng)用戶權(quán)限未得到及時(shí)更新。對(duì)此過程中消息中心所涉及部分進(jìn)行分析發(fā)現(xiàn):所有的權(quán)限同步消息實(shí)例在產(chǎn)生后,不能正常的將此消息實(shí)例發(fā)送至消息總線,分析失敗原因,只有一種,那就是”connect time out”。從此信息可看出,應(yīng)該是外網(wǎng)系統(tǒng)所發(fā)出的消息無法通過WEBService送達(dá)指定的消息總線接收端所至。但從內(nèi)網(wǎng)發(fā)出的同一類消息,其發(fā)送和接收卻又都是正常的。

          分析過程記錄

          1、先分析我們系統(tǒng)的整體部署方式,如下圖所示:

          根據(jù)外網(wǎng)用戶可正常登錄和訪問系統(tǒng),并可通過系統(tǒng)準(zhǔn)確及時(shí)的發(fā)出執(zhí)行指令操作,完成其所需的業(yè)務(wù)活動(dòng)來看,網(wǎng)絡(luò)方面和系統(tǒng)和硬件方面都不存在問題。

          2、在外網(wǎng)環(huán)境下,直接進(jìn)行各消息客戶端和消息總線的服務(wù)的檢測,所發(fā)請(qǐng)求都能夠正確的到達(dá)指定目標(biāo),WEBService的響應(yīng)也正常且正確,也就是說,各應(yīng)用系統(tǒng)加載的消息服務(wù)運(yùn)行也正常。

          3、根據(jù)本次檢測需要,另行開發(fā)消息中心專用檢測工具,為本次和今后的行的消息中心檢測和問題分析,作好更充分的準(zhǔn)備。

          4、通過檢測工具,發(fā)現(xiàn),外網(wǎng)環(huán)境下,消息客戶端和消息總線之間不能夠聯(lián)通,從而找到問題所出:即不知是何原因,導(dǎo)致外網(wǎng)消息與外網(wǎng)的消息總線間聯(lián)絡(luò)不通!

          5、對(duì)外網(wǎng)用戶消息產(chǎn)生和發(fā)送的過程和邏輯實(shí)現(xiàn)進(jìn)行分析:我們發(fā)現(xiàn),為了滿足應(yīng)用系統(tǒng)外網(wǎng)訪問的需要,我們對(duì)消息系統(tǒng)配置信息中服務(wù)地址的ServerName進(jìn)行了偽處理,即在運(yùn)行時(shí),根據(jù)用戶瀏覽器的請(qǐng)求頭來判斷用戶使用的是哪一個(gè)WEB服務(wù)器地址,并將此地址動(dòng)態(tài)的代替消息配置中的各ServerName信息,從而保證各使用用戶只能夠訪問其指定的WEB服務(wù)器,從而避免因WEB服務(wù)器的不匹配而影響其訪問速度、處理效率等故障的發(fā)生。此方式已在我部門多套同時(shí)服務(wù)于內(nèi)外網(wǎng)絡(luò)的系統(tǒng)中得到可靠的驗(yàn)證。

          那么,會(huì)不會(huì)因?yàn)?/span>ServerName在動(dòng)態(tài)解釋過程中,因多并發(fā)情況下,因后訪問者將前訪問者的ServerName改寫而導(dǎo)致錯(cuò)誤的解釋,即將不同網(wǎng)絡(luò)用戶的消息地址進(jìn)行張冠李戴而導(dǎo)致消息無法正常發(fā)送呢?

          分析消息中心各部分WEBService生成和使用機(jī)制:因系統(tǒng)的并發(fā)性要求較高,在高峰期其在線用戶可達(dá)3000人,并發(fā)用戶在300以上,且系統(tǒng)穩(wěn)定性要求極高。為提高系統(tǒng)的性能和穩(wěn)定性,在系統(tǒng)啟動(dòng)時(shí)即將消息中心各部的WEBService連接進(jìn)行創(chuàng)建和緩存,以提升消息中心資源利用率,并提升其訪問性能。

          當(dāng)存在多網(wǎng)絡(luò)用戶訪問時(shí),可能因消息中心存貯的WEBService連接并不是其用戶所使用的那個(gè)網(wǎng)絡(luò)的WEBService服務(wù)地址,此時(shí),消息肯定是無法送達(dá)至此用戶所需要的目標(biāo)的。因此,報(bào)”connect time out”錯(cuò)誤就成必然的了。

          既然已找到問題的可能原因,我們立即進(jìn)行著手分析和解決:根據(jù)部署要求,我們對(duì)對(duì)消息服務(wù)連接服務(wù)進(jìn)行了升級(jí),即將服務(wù)請(qǐng)求進(jìn)行分類處理和實(shí)現(xiàn),并在消息配置中對(duì)所使用的部署方式、代理實(shí)現(xiàn)后,交由測試人員進(jìn)行部署和測試。

          測試結(jié)果:令人失望的是,此問題依然存在!在通過外網(wǎng)WEB服務(wù)器訪問的系統(tǒng),其消息還是無法發(fā)送至消息總線。由此得知,此種分析方向是錯(cuò)誤的!

          至此,好像已經(jīng)走入了死區(qū),能想到的方式都已經(jīng)想到了,但問題到底出在哪呢?

          問題解決

          在一次與同事聊天的過程中,忽然想到一個(gè)問題,那就是:我們的消息的產(chǎn)生和應(yīng)用都是由應(yīng)用系統(tǒng)和與之集成在一起的消息客戶端自動(dòng)產(chǎn)生和處理的,此過程中完全不受人工干預(yù)和影響。而應(yīng)用系統(tǒng)是部署在應(yīng)用服務(wù)器中,WEB服務(wù)器僅是用來處理用戶的HTTP請(qǐng)求à將此請(qǐng)求轉(zhuǎn)發(fā)至對(duì)應(yīng)的應(yīng)用服務(wù)器后à將應(yīng)用服務(wù)器的響應(yīng)返回給用戶。

          在此過程中WEB服務(wù)器并未對(duì)用戶業(yè)的http請(qǐng)求進(jìn)行過任何業(yè)務(wù)上的處理!那么,問題會(huì)不會(huì)出在WEB服務(wù)器端呢?檢查一下消息中心的配置不管是使用ServerName還是寫死IP和域名,我們的消息中心配置的地址都是指向WEB服務(wù)器。而在應(yīng)用系統(tǒng)發(fā)現(xiàn)消息時(shí),其所在位置是應(yīng)用服務(wù)器。而應(yīng)用服務(wù)器是無法直接訪問部署于外網(wǎng)IP中的WEB服務(wù)器的,當(dāng)然,消息無法發(fā)送至目標(biāo)就成為必然了。

          既然已經(jīng)找到問題,那就動(dòng)手,將消息中心的配置信息指向應(yīng)用服務(wù)器后,重啟應(yīng)用系統(tǒng)后測試,問題果然解決!

          通過應(yīng)用服務(wù)器進(jìn)行后臺(tái)自動(dòng)處理的,進(jìn)行HTTPWEBService活動(dòng),其目標(biāo)必需是它能夠訪問的有效地址!這個(gè)問題在以前也曾經(jīng)碰到過,只是由于時(shí)間隔得太久,且這些場景應(yīng)用出現(xiàn)太少,而導(dǎo)致再次發(fā)生。

          補(bǔ)充與心得

          1、    基于應(yīng)用系統(tǒng)或后臺(tái)自動(dòng)觸發(fā)的一些業(yè)務(wù)邏輯,如其中存在著系統(tǒng)間相互訪問或遠(yuǎn)程調(diào)用等,必需以應(yīng)用系統(tǒng)自身為根,進(jìn)行連接測試;通過外層包裝或其它代理,進(jìn)行訪問時(shí),必需先剝離過外層包裝或其它代理后,再進(jìn)行連接測試,并以測試結(jié)果,作為決策的依據(jù)!此舉適用于各類系統(tǒng)的架構(gòu)設(shè)計(jì)和邏輯實(shí)現(xiàn)過程中。

          2、    基于中間件產(chǎn)品應(yīng)用,及時(shí)開發(fā)與之配套的檢測和使用工具,是一件必不可少的工作,此舉將為后期的實(shí)施和問題分析節(jié)省大量的工作量。

          posted @ 2009-10-07 17:06 lbom 閱讀(1499) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題  下一頁
          主站蜘蛛池模板: 驻马店市| 吉木萨尔县| 海城市| 南投市| 海南省| 绥江县| 丰县| 双柏县| 岢岚县| 黄石市| 武鸣县| 大庆市| 寿宁县| 潜山县| 江源县| 钟山县| 宜宾县| 泸州市| 米林县| 岗巴县| 内乡县| 大洼县| 南投县| 波密县| 宜阳县| 黑河市| 砚山县| 桦川县| 彩票| 金坛市| 沾益县| 临城县| 边坝县| 上栗县| 陇川县| 武功县| 古浪县| 民和| 崇明县| 泰州市| 监利县|