lbom

          小江西

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

          2009年5月15日 #

          昨日年終總結(jié)會,公司總裁給出IT產(chǎn)業(yè)未來發(fā)展的幾個(gè)新趨勢,值得我們這些從事軟件工作的人員沉思,現(xiàn)對他的發(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 閱讀(287) | 評論 (0)編輯 收藏

          今天,花費(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 閱讀(4030) | 評論 (1)編輯 收藏

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

          2)添加Blog帳戶:

          image image

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

          image

          4)連接測試

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

          很久沒有動(dòng)手寫WebService了,這次,借項(xiàng)目間隙,對系統(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)一處理針對本應(yīng)用系統(tǒng)所需進(jìn)行WebService化的邏輯實(shí)現(xiàn)。并將系統(tǒng)邏輯處理中的對象轉(zhuǎn)成序列化后的String對象,以符合WebService交互標(biāo)準(zhǔn)。

          clip_image002

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

          clip_image003

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

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

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

          3)通過eclipse已提供的webService插件(右鍵)功能,生成客戶端開發(fā)包所各文件。此時(shí),所生成的文件與服務(wù)端對象文件結(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,對WebService服務(wù)端交互工作的SBPApiSoapBindingStub.java進(jìn)行客戶端封裝,并根據(jù)服務(wù)端中交互對象進(jìn)行反向工程,其示例結(jié)構(gòu)如下:

          clip_image006

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

          7)測試。

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

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

          在一次基于多線程的編碼測試中,發(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() {

          ……

          }

          }

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

          public static void main(String[] args) {

          Thread t = new T();

          t.start();

          }

          但對于繼承Runnable接口的實(shí)現(xiàn)類R,因接口中并沒有提供直接啟動(dòng)線程的start()方法,只有一個(gè)線程主邏輯運(yùn)行的run()方法。此時(shí),如執(zhí)行run(),會因?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 閱讀(1584) | 評論 (2)編輯 收藏

          需求:

          系統(tǒng)A與系統(tǒng)B分別部署在不同域的兩臺服務(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請求)的方式獲取身份信息,此方式好處是同步處理,方便用使用;但其限制諸多,如需設(shè)置信任站點(diǎn)、用戶訪問確認(rèn)等,甚至,在對應(yīng)用服務(wù)器作了一次安全升級后,根本無法訪問了。因此,需另行開辟途徑,于是,在同事建議下,我們使用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)識,因此,需要用戶在瀏覽器中允許使用cookie的設(shè)置;

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

          clip_image005[6]

          4、源碼文件:

          ……

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

          在windows下進(jìn)行j2ee項(xiàng)目開發(fā)和部署時(shí),常需要對系統(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、下一步就是對所產(chǎn)生的javacore文件進(jìn)行具體的分析和使用了。

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

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

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

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

          唉!

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

          一、項(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)對象,因此需使用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之后,會在項(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 閱讀(1478) | 評論 (0)編輯 收藏

           

           

          消息中心產(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í)行不需前臺使用人員干預(yù)的如后臺業(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)行與之對應(yīng)的業(yè)務(wù)處理等活動(dòng);消息總線負(fù)責(zé)接收從消息客戶端產(chǎn)生并發(fā)送而來的消息實(shí)例、消息重建、根據(jù)消息配置進(jìn)行消息實(shí)例重建,將重建后的消息實(shí)例轉(zhuǎn)發(fā)至對應(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)后,通過對業(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í)更新。對此過程中消息中心所涉及部分進(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ā)請求都能夠正確的到達(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、對外網(wǎng)用戶消息產(chǎn)生和發(fā)送的過程和邏輯實(shí)現(xiàn)進(jìn)行分析:我們發(fā)現(xiàn),為了滿足應(yīng)用系統(tǒng)外網(wǎng)訪問的需要,我們對消息系統(tǒng)配置信息中服務(wù)地址的ServerName進(jìn)行了偽處理,即在運(yùn)行時(shí),根據(jù)用戶瀏覽器的請求頭來判斷用戶使用的是哪一個(gè)WEB服務(wù)器地址,并將此地址動(dòng)態(tài)的代替消息配置中的各ServerName信息,從而保證各使用用戶只能夠訪問其指定的WEB服務(wù)器,從而避免因WEB服務(wù)器的不匹配而影響其訪問速度、處理效率等故障的發(fā)生。此方式已在我部門多套同時(shí)服務(wù)于內(nèi)外網(wǎng)絡(luò)的系統(tǒng)中得到可靠的驗(yàn)證。

          那么,會不會因?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ù)部署要求,我們對對消息服務(wù)連接服務(wù)進(jìn)行了升級,即將服務(wù)請求進(jìn)行分類處理和實(shí)現(xiàn),并在消息配置中對所使用的部署方式、代理實(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請求à將此請求轉(zhuǎn)發(fā)至對應(yīng)的應(yīng)用服務(wù)器后à將應(yīng)用服務(wù)器的響應(yīng)返回給用戶。

          在此過程中WEB服務(wù)器并未對用戶業(yè)的http請求進(jìn)行過任何業(yè)務(wù)上的處理!那么,問題會不會出在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)行后臺自動(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)或后臺自動(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 閱讀(1493) | 評論 (0)編輯 收藏

              幾天前,偶爾和鄰居聊天,她說要去買頂蚊帳過夏,不由的也動(dòng)了心。是啊,在小時(shí)候,那家不是用蚊帳來保證漫長夏的良好睡眠呢!現(xiàn)在隨著科技發(fā)達(dá),家家戶戶,特別是城市住戶都已經(jīng)將蚊帳扔掉而改用蚊香或蚊片了。
              于是等夫人下班回家,和其商量,卻是死活不同意,理由如下:1)影響臥室美觀;2)擠占空間;3)拆洗不便。。。。。。
              沒辦法,為了達(dá)到目的,我只得絞盡腦汁,想出各種理由,以期望能夠說服夫人:
              1)身體牌:我對蚊香有過敏,因此,在夏天,我們是不能點(diǎn)蚊香的;再說,各種滅蚊產(chǎn)品其主要成份都有毒性,不管其含量多少,都對身體無益。
              2)經(jīng)濟(jì)牌:在重慶,一年有6個(gè)月的夏天,以每晚一片滅蚊片計(jì)算,一年下來,加上電熱滅蚊器最少需要投入120元以上才能保證夏季無憂,三四年下來,就可以買個(gè)較好的蚊帳了;再說,滅蚊片用久后,還得防止蚊子產(chǎn)生的抗藥性;但使用蚊帳卻不需要用電,一年下來,其電費(fèi)也能節(jié)約不少,還可防止可能因電熱滅蚊器散熱不良而導(dǎo)致的用電風(fēng)險(xiǎn)的發(fā)生;
              3)環(huán)保牌:在臥室支個(gè)蚊帳,即溫馨又浪漫,還無滅蚊產(chǎn)品的各類化學(xué)合成的氣味,最環(huán)保不過了;
              4)衛(wèi)生牌:在床上支個(gè)蚊帳,將有效的減少灰塵降落,也免了蜘蛛等小蟲在晚間不意間打擾我們的安眠,多好的一件事!
              。。。。。。
              啰啰嗦嗦,直說的口干舌燥,并許下一堆好處之后,終于換來老婆的點(diǎn)頭。于是二話不說,拉上夫人,直奔商場,在東挑西比之后,買下一款合意的落地式蚊帳。
              至此,我的環(huán)保蚊帳計(jì)劃就此實(shí)現(xiàn)!
           
              所以,回歸和懷舊,并不都是倒退!
          posted @ 2009-05-26 09:43 lbom 閱讀(294) | 評論 (0)編輯 收藏

                  在一周前,項(xiàng)目組碰到一個(gè)大問題:NTKO Office Activex控件在上傳文件及提交頁面信息時(shí),其提交的頁面元素輸入中文值變成了無法識別的、也不屬于已知編碼中的任何一種編碼格式的亂碼;但在NTKO Office Activex控件包裝項(xiàng)目組提供的的測試項(xiàng)目中,此問題并未出現(xiàn),因此判斷是項(xiàng)目兼容性所導(dǎo)致。
                 在項(xiàng)目組功能開發(fā)員和控件包裝組成員進(jìn)行近一周的努力后,也未解決此問題。最后,此問題交由我來做最后分析和處理。
                 經(jīng)過三天時(shí)間對問題項(xiàng)目的分拆、組裝、分析、測試后,終于找到問題所出,現(xiàn)將此過程進(jìn)行記錄,以備參考:
                  1)以控件包裝組測試項(xiàng)目為基準(zhǔn),建立項(xiàng)目級測試項(xiàng)目,并保證在此測試項(xiàng)目中不存在兼容性問題;
                  2)檢測web.xml:將問題項(xiàng)目的web.xml代替測試項(xiàng)目中的web.xml,未出現(xiàn)兼容性問題,從而排除因web.xml的差異而導(dǎo)致的兼容性;
                  3)測試問題項(xiàng)目中的項(xiàng)目依賴:將問題項(xiàng)目的項(xiàng)目依賴關(guān)系復(fù)制至測試項(xiàng)目中,發(fā)現(xiàn)兼容性問題未出現(xiàn),從而排除項(xiàng)目依賴導(dǎo)致的兼容性;
                  4)檢測支持包:將問題項(xiàng)目中的支持包(各jar)代替測試項(xiàng)目中的支持包,未出現(xiàn)兼容性問題,從而排除因支持包的差異導(dǎo)致的兼容性,也就排除了各servers,servlet,listener等導(dǎo)致的兼容性問題;
                  5)檢測js支撐:將問題項(xiàng)目中的所有相關(guān)js文件取出,代替測試項(xiàng)目中的相關(guān)js文件,未出現(xiàn)兼容性問題,從而排除因js支持文件的差異導(dǎo)致的兼容性;
                  6)檢測css支撐:將問題項(xiàng)目中的所有相關(guān)css文件取出,代替測試項(xiàng)目中的相關(guān)js文件,未出現(xiàn)兼容性問題,從而排除因css支持文件的差異導(dǎo)致的兼容性;
                  7)檢測tld,xml文件:將問題項(xiàng)目中的tld,xml文件取出,代替測試項(xiàng)目中的tld,xml文件,未出現(xiàn)兼容性問題,從而排除因tld,xml的差異導(dǎo)致的兼容性;
                  8)至此,正常解決的兼容性措施都已用完,還是未找到問題所出!如何辦?
                  9)開始使用非正常手段進(jìn)行排查:
                      <1>對比檢查.project和.classes未發(fā)現(xiàn)異常,從而排除基本項(xiàng)目配置導(dǎo)致的兼容性;
                      <2>將問題項(xiàng)目的web項(xiàng)目設(shè)置文件(.settings)代替測試項(xiàng)目的web項(xiàng)目設(shè)置文件(.settings),問題出現(xiàn)了!繼續(xù)排隊(duì)分析,發(fā)現(xiàn)問題出現(xiàn)在文件org.eclipse.wst.common.component中,
          問題項(xiàng)目的設(shè)置為:
                                              <?xml version="1.0" encoding="UTF-8"?>
                                              <project-modules id="moduleCoreId" project-version="1.5.0">
                                                 <wb-module deploy-name="XXX_IC">
                                                 <wb-resource deploy-path="/" source-path="/web"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
                                                 <property name="java-output-path" value="build/classes"/>
                                                 <property name="context-root" value="XXX_IC"/>
                                             </wb-module>
                                             </project-modules>
          測試項(xiàng)目設(shè)置為:
                                              <?xml version="1.0" encoding="UTF-8"?>
                                              <project-modules id="moduleCoreId" project-version="1.5.0">
                                                 <wb-module deploy-name="test">
                                                 <wb-resource deploy-path="/" source-path="/web"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
                                                 <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
                                                 <property name="java-output-path" value="build/classes"/>
                                                 <property name="context-root" value="test"/>
                                             </wb-module>
                                             </project-modules>
          且無論如何修改"XXX_IC",都會導(dǎo)致兼容性出現(xiàn),最后沒辦法,將下劃線"_"去掉,奇跡出現(xiàn)了。
                  原來NTKO Office Activex控件在提交數(shù)據(jù)時(shí),是通過scoket模擬Http進(jìn)行文件和頁面元素的提供,如提交的頁URL完整路徑中包含了"_"等字符時(shí),將導(dǎo)致無法識別,從而導(dǎo)致兼容性的產(chǎn)生。
          posted @ 2009-05-15 22:13 lbom 閱讀(1509) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 梁河县| 廉江市| 精河县| 耒阳市| 新丰县| 五寨县| 怀仁县| 杂多县| 吉林省| 垣曲县| 定陶县| 德格县| 青川县| 保靖县| 太和县| 姚安县| 宝鸡市| 金阳县| 邳州市| 建平县| 镇雄县| 涞水县| 师宗县| 化德县| 荔浦县| 和田县| 宁波市| 南阳市| 鲜城| 平湖市| 惠水县| 新河县| 葫芦岛市| 赣州市| 禄丰县| 桑日县| 冷水江市| 博爱县| 武陟县| 休宁县| 肥乡县|