辦公自動化系統(tǒng)OA系統(tǒng)分析與設(shè)計_第1頁
辦公自動化系統(tǒng)OA系統(tǒng)分析與設(shè)計_第2頁
辦公自動化系統(tǒng)OA系統(tǒng)分析與設(shè)計_第3頁
辦公自動化系統(tǒng)OA系統(tǒng)分析與設(shè)計_第4頁
辦公自動化系統(tǒng)OA系統(tǒng)分析與設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、概述OA是Office Automation的縮寫,本意為利用技術(shù)的手段提高辦公的效率,進(jìn)而實現(xiàn)辦公的自動化處理。實現(xiàn)信息化、無紙化辦公,可方便的生成統(tǒng)計報表等。OA是OFFIICE AUUTOMATTION的縮縮寫,本意為為利用技術(shù)的的手段提高辦辦公的效率,進(jìn)進(jìn)而實現(xiàn)辦公公的自動化處處理。采用IInternnet/Inntraneet技術(shù),基基于工作流的的概念,使企企業(yè)內(nèi)部人員員方便快捷地地共享信息,高高效地協(xié)同工工作;改變過過去復(fù)雜、低低效的手工辦辦公方式,實實現(xiàn)迅速、全全方位的信息息采集、信息息處理,為企企業(yè)的管理和和決策提供科科學(xué)的依據(jù)。OA軟件解決企企業(yè)的日常管管理規(guī)范化、增增加企業(yè)

2、的可可控性、提高高企業(yè)運轉(zhuǎn)的的效率的基本本問題。范圍圍涉及日常行行政管理、各各種事項的審審批、辦公資資源的管理、多多人多部門的的協(xié)同辦公、以以及各種信息息的溝通與傳傳遞??梢愿鸥爬ǖ恼f,OOA軟件跨越越了生產(chǎn)、銷銷售、財務(wù)等等具體的業(yè)務(wù)務(wù)范疇,更集集中關(guān)注于企企業(yè)日常辦公公的效率和可可控性,是企企業(yè)提高整體體運轉(zhuǎn)能力不不可缺少的軟軟件工具。系統(tǒng)作用組織的核心競爭爭力源自單位位對內(nèi)外部資資源的有效利利用。對它們們之間的關(guān)系系進(jìn)行協(xié)調(diào),最最大限度的發(fā)發(fā)揮所有資源源的作用,并并用系統(tǒng)的觀觀點,在整個個系統(tǒng)價值最最大化的基礎(chǔ)礎(chǔ)上來發(fā)揮各各個資源的作作用,使資源源的運作產(chǎn)生生協(xié)同效用。因因此可通過協(xié)協(xié)同

3、辦公系統(tǒng)統(tǒng)打造單位的的核心競爭力力。本協(xié)同辦辦公系統(tǒng)的主主要作用為:建立內(nèi)部的通信信平臺。建立信息發(fā)布的的平臺。文檔管理的自動動化。工作流程的自動動化。行政日常事務(wù)處處理。安全機制的可靠靠性。本系統(tǒng)旨在加速速單位信息化化進(jìn)程,充分分利用計算機機和現(xiàn)代通訊訊手段面向單單位服務(wù)。建建立單位內(nèi)部部信息交流的的快速通道,以以共享信息資資源。強化部部門業(yè)務(wù)管理理,加強各業(yè)業(yè)務(wù)部門之間間的交流。實實現(xiàn)單位信息息的快速上傳傳下達(dá),促進(jìn)進(jìn)協(xié)同辦公。提提高辦公效率率,為各級領(lǐng)領(lǐng)導(dǎo)及業(yè)務(wù)人人員提供輔助助辦公和決策策服務(wù)。本系統(tǒng)將最大限限度地提高辦辦公效率和辦辦公質(zhì)量,降降低管理和辦辦公成本,改改善辦公環(huán)境境和條件

4、,提提高辦公管理理和決策的自自動化和科學(xué)學(xué)化水平。以人為中心,致致力于幫助用用戶實現(xiàn)共享享資源、規(guī)范范流程、推動動執(zhí)行的目的的。幫助用戶戶節(jié)省辦公費費用,減少中中間環(huán)節(jié),優(yōu)優(yōu)化業(yè)務(wù)流程程,提高整體體效率,促進(jìn)進(jìn)管理進(jìn)步。設(shè)計原則以應(yīng)用為核心,要要突出“實用用、易用、簡簡潔、穩(wěn)定”。既既注重實效,滿滿足用戶的現(xiàn)現(xiàn)實需要,又又為系統(tǒng)的后后續(xù)升級和擴擴展留有余地地。在技術(shù)實實現(xiàn)上,要突突出“結(jié)構(gòu)清清晰、實現(xiàn)合合理、通俗易易懂(簡單)”。實用:滿足用戶戶現(xiàn)實需要,解解決實際問題題,做細(xì)核心心功能。易用:使用方便便,各項功能能一目了然。滿滿足用戶的使使用習(xí)慣,易易使用、易維維護(hù)、易升級級。實現(xiàn)“傻傻瓜”

5、式的操操作,將實施施、培訓(xùn)成本本和周期降到到最低。簡潔:頁面簡潔潔,功能簡潔潔,每一個元元素都有存在在的意義。穩(wěn)定:從底層數(shù)數(shù)據(jù)庫到功能能層經(jīng)過嚴(yán)格格測試,能在在不同的硬件件環(huán)境中長期期平穩(wěn)運行。功能說明OA是輔助辦公公的軟件,使使用OA與不使用用OA相對比的的好處是:可可以用計算機機管理所有的的數(shù)據(jù),并可可以方便的實實現(xiàn)統(tǒng)計與報報表的功能。提提高辦公效率率。(實現(xiàn)信信息化)。以下是一個OAA系統(tǒng)的全部部功能列表:說明:不是所有有的OA都有全部部的功能,而而是根據(jù)需要要確定的。軟件開發(fā)的步驟驟說明需求確認(rèn)概要要設(shè)計詳細(xì)細(xì)設(shè)計編碼碼單元測試試集成測試試系統(tǒng)測試試維護(hù)。單元測試是由程程序員自己來來

6、完成,最終終受益的也是是程序員自己己??梢赃@么么說,程序員員有責(zé)任編寫寫功能代碼,同同時也就有責(zé)責(zé)任為自己的的代碼編寫單單元測試。執(zhí)執(zhí)行單元測試試,就是為了了證明這段代代碼的行為和和我們期望的的一致。集成測試,也叫叫組裝測試或或聯(lián)合測試。在在單元測試的的基礎(chǔ)上,將將所有模塊按按照設(shè)計要求求(如根據(jù)結(jié)結(jié)構(gòu)圖組裝裝成為子系統(tǒng)統(tǒng)或系統(tǒng),進(jìn)進(jìn)行集成測試試。實踐表明明,一些模塊塊雖然能夠單單獨地工作,但但并不能保證證連接起來也也能正常的工工作。程序在在某些局部反反映不出來的的問題,在全全局上很可能能暴露出來,影影響功能的實實現(xiàn)。系統(tǒng)測試是將已已經(jīng)確認(rèn)的軟軟件、計算機機硬件、外設(shè)設(shè)、網(wǎng)絡(luò)等其其他元素結(jié)合合

7、在一起,進(jìn)進(jìn)行信息系統(tǒng)統(tǒng)的各種組裝裝測試和確認(rèn)認(rèn)測試,其目目的是通過與與系統(tǒng)的需求求相比較,發(fā)發(fā)現(xiàn)所開發(fā)的的系統(tǒng)與用戶戶需求不符或或矛盾的地方方,從而提出出更加完善的的方案。整體說明要完成的功能模塊功能說明組織與用戶管理理崗位管理部門管理用戶管理權(quán)限初始化權(quán)限分配權(quán)限驗證權(quán)限網(wǎng)上交流-論論壇版塊管理看帖、發(fā)帖、回回帖文章管理審批流轉(zhuǎn)(工作作流)表單模板管理審批流程管理審批流轉(zhuǎn)表單查詢說明:按列出的的順序?qū)崿F(xiàn)功功能。效果以以靜態(tài)頁面為為準(zhǔn)。分層一、JavaEEE的三層架架構(gòu)二、關(guān)于分層的的說明1,上面調(diào)用下下面,即Viiew調(diào)用Servvice,Serviice調(diào)用Dao。2,層與層之間間用接口

8、。除除定義的接口口外,不能使使用其它層的的特有類或接接口。3,使用實體作作為DTO(Data Transsfer OObjectt,數(shù)據(jù)傳輸輸對象)要做到任一層換換掉后,其他他層不受影響響。我們在此此項目中使用用兩層:Viiew+Seervicee即在Serrvice中中直接操作HHibernnate.SSessioon。因為如如果使用三層層,在Serrvice中中就會有一部部分方法只是是直接調(diào)用DDAO中的方方法。一般情情況下只有在在多個數(shù)據(jù)源源的場合下適適合引入DAAO層。三、有關(guān)分層的的幾個問題1,一定要分層層嗎?不一定。假如公公司要求你寫寫一個可以給給指定員工發(fā)發(fā)送短信的小小程序,用于

9、于開會通知與與自動發(fā)送生生成祝福短信信。這個程序序很小,沒有有多少行代碼碼,而且不變變,這時不分分層可以嗎?完全可以呀呀。但我們在在寫程序時,還還是要分層的的,分層的程程序結(jié)構(gòu)清晰晰,可維護(hù)性性高。2,一定要3層層嗎?不一定。分3層層是推薦的,而而不是必須的的,應(yīng)根據(jù)自自己的具體情情況進(jìn)行安排排。我們?nèi)绻褂?層的的結(jié)構(gòu),用起起來就麻煩,因因為在Serrvice中中會有一部分分方法只是直直接調(diào)用Daao中的方法法,而Daoo中的方法只只是調(diào)用Seessionn完成某操作作。此時分22層更好,即即在Servvice中可可直接操作SSessioon,以簡化化結(jié)構(gòu)。其實實Hiberrnate已已經(jīng)

10、可以支持持多種數(shù)據(jù)庫庫。3,一定要使用用接口嗎?不一定。以前就就有同學(xué)問我我:“在設(shè)計計程序時確定定的技術(shù)在開開發(fā)后一般不不會更換的,實實現(xiàn)類一般也也不會更換,這這種情況還用用接口嗎,一一般的小項目目是不是可以以不使用接口口?”。是的的,如果不會會變(一般也也不會變),這這是完全可以以的。我們所學(xué)習(xí)的框框架、技術(shù)都都是解決問題題的推薦方案案,而不是必必須要用的。遇遇到問題后優(yōu)優(yōu)化使用成熟熟的技術(shù)與方方案,以避免免很多潛在的的或后發(fā)的問問題,避免走走不必要的彎彎路。所用框架、技術(shù)術(shù)編號工具版本說明Struts 1.3.8JSTL 1.1Hibernaate 3實現(xiàn)持久化操作作jBPM工作流支持J

11、unit4單元測試jQuery說明:還有jQQuery.validdate與jQuerry.treeevieww等小插件開發(fā)環(huán)境操作系統(tǒng)Windowss XP開發(fā)工具M(jìn)yEclippse6.00數(shù)據(jù)庫MySql5.0.22Web容器Tomcat66.0瀏覽器IE6說明:推薦使用用MyEcllipse,這這樣出現(xiàn)工具具問題可以一一起解決。當(dāng)當(dāng)然也可以使使用自已熟悉悉的工具,如如Eclippse、NetBeeans、IntellliJ。重重點是代碼,不不是工具。應(yīng)應(yīng)使用有效的的工具。約定工程中所有的文文件都采用uutf-8編編碼。所有的的頁面都是使使用utf-8編碼,這這樣方便解決決表單內(nèi)容的的亂

12、碼問題。亂亂碼一般情況況下是亂用編編碼產(chǎn)生的。實體的主鍵屬性性的類型使用用Long型。代碼規(guī)范命名:使用駝峰峰命名法。注釋:在代碼中中加入適當(dāng)?shù)牡淖⑨專赫f明明步驟,與說說明非簡單邏邏輯??招校涸诖a中中加入適當(dāng)?shù)牡目招?,就像像寫文章時要要分段一樣(增增強可讀性)??傊WC代代碼的清晰、簡簡潔、可讀。詳細(xì)設(shè)計TODO 詳見見每一個模塊塊對應(yīng)的文檔檔環(huán)境與工程配置置主要配置開發(fā)工工具、MyEEclipsse工程、數(shù)數(shù)據(jù)庫。1,新建Webb工程,名稱稱為:ItccastOAA。2,使用數(shù)據(jù)庫庫名為:ittcastooa_$當(dāng)當(dāng)前日期。3,工程編碼使使用UTF-8。不要改改worksspace編編

13、碼,因為他他會影響里面面的所有工程程。配置工具配置快捷鍵把Contennt Asssist設(shè)為為Alt+/把Word CCompleetion 設(shè)為Altt+.3,其他常用快快捷鍵說明:Alt+/Contentt Assiist代碼提示Ctrl+T顯示類的繼承結(jié)結(jié)構(gòu)Ctrl+O列出類中的成員員(成員變量量、方法等)Ctrl+/注釋/取消注釋釋Ctrl+Shhift+OO導(dǎo)入要使用的包包、并去除不不使用的包Ctrl+Shhift+FF格式化當(dāng)前文件件中的代碼/格式化選中中的代碼Ctrl+Allt+Up復(fù)制當(dāng)前行到下下面Ctrl+Allt+Dowwn復(fù)制當(dāng)前行到上上面Ctrl+D刪除當(dāng)前行/刪刪除

14、選中文本本占的所有行行Shift+EEnter相當(dāng)于按Endd后再按EnnterAlt+LefftAlt+RigghtCtrl+Shhift+XX變?yōu)榇髮慍trl+Shhift+YY變?yōu)樾懪渲梦募哪J(rèn)認(rèn)編碼配置JSP的默默認(rèn)編碼為uutf-8配置JavaSScriptt的默認(rèn)編碼碼為utf-8說明:在MyEEclipsse7.x不不用修改,配置格式化的代代碼樣式使用Ctrl+Shiftt+F可以格格式化代碼。在WindowwPrefeerenceesJavaaCode StyleeFormaatter中中可以設(shè)置代代碼樣式。 要把Javva代碼與注注釋的行寬設(shè)設(shè)為130。(其其他使用默認(rèn)認(rèn)

15、樣式)搜索XML SSourcees,修改xxml的行寬寬為130。(不不考慮打印的的情況)MyEclippse工具使使用說明導(dǎo)入工程時可以以直接選擇一一個zip文檔:FileImmportEExistiing Prrojectts intto Worrkspacce-SSelectt archhive ffile。工程改名后,發(fā)發(fā)果發(fā)布到TTomcatt下,對應(yīng)的的應(yīng)用的名稱稱不一定改變變。這個名稱稱是在MyEEclipsse Webb中的Web Conteext-rooot中配置置的。創(chuàng)建數(shù)據(jù)庫使用MySqll數(shù)據(jù)庫。創(chuàng)創(chuàng)建數(shù)據(jù)庫時時,要注意編編碼要支持中中文。建表語語句如下:create

16、 databbase iitcasttoa deefaultt charracterr set utf8;show creatte dattabasee itcaastoa;新建Web工程程并準(zhǔn)備環(huán)境境新建一個Webb Projject,并并設(shè)置工程的的編碼為UTTF-8。添加框架環(huán)境添加Junitt4的Jar包。添加Strutts1.3.8環(huán)境:jar包配置文件(sttruts-confiig.xmll、修改webb.xml)、國國際化資源文文件、自定義義標(biāo)簽庫的TTLD文件。配配為*.doo攔截的請求求。添加Hiberrnate環(huán)環(huán)境:jar包(含JJDBC驅(qū)動動的jar包)配置文件(hi

17、ibernaate.cffg.xmll)。添加jBPM環(huán)環(huán)境(Jbppm的jar包中已已包含Hibbernatte的jar包)。說明:JSTL 已包包含在JavvaEE5.0中,所以以不用配置。不要引用外面的的Jar包,應(yīng)全部拷拷貝到工程中中。配置數(shù)據(jù)庫修改Hiberrnate.cfg.xxml中的數(shù)數(shù)據(jù)庫連接信信息。并在hhibernnate.ccfg.xmml中做如下下配置:ttrueuppdate目錄結(jié)構(gòu)源碼文件夾src項項目源代碼 connfig配置文件 tesst單元測試WebRoott文件夾下 scrriptJavaSScriptt腳本文件 styyleCSS樣式文文件 WEBB-

18、INF/jspjsp頁面文文件(再創(chuàng)建建子文件夾分分類存放)包結(jié)構(gòu)使用三層:顯示示層(Vieew),業(yè)務(wù)務(wù)層(Serrvice),數(shù)數(shù)據(jù)訪問層(Dao)包名說明cn.itcaast.oaa.domaain實體(Domaain)cn.itcaast.oaa.daoDao接口cn.itcaast.oaa.dao.implDao的實現(xiàn)類類cn.itcaast.oaa.servviceServicee接口cn.itcaast.oaa.servvice.iimplServicee的實現(xiàn)類cn.itcaast.oaa.web.struttsStruts有有關(guān)的類cn.itcaast.oaa.web.str

19、utts.acttionStruts的的Actiooncn.itcaast.oaa.web.strutts.forrmbeannStruts的的FormBBean(ActioonFormm)cn.itcaast.oaa.utill一些工具類cn.itcaast.oaa.cfgcn.itcaast.oaa.web.filteer基礎(chǔ)功能BaseDaoo與BaseDDaoImppl的設(shè)計每個實體都應(yīng)有有一個對應(yīng)的的Dao,他封封裝了對這個個實體的數(shù)據(jù)據(jù)庫操作。例例實體Daao接口實現(xiàn)類=User- UUserDaao- UUserDaaoImpllRole- RRoleDaao- RRoleDaa

20、oImpllDepartmment- DDeparttmentDDao- DDeparttmentDDaoImpplArticlee- AArticlleDao- AArticlleDaoIImpl.說明:實體的Dao接接口要繼承BBaseDaao接口。Dao的實現(xiàn)類類要繼承DaaoImpllBase類類。也可以不繼承指指定的接口或或類,這樣就就要自己寫相相應(yīng)的方法。T getByyId(Loong idd)與List geetByIddList(Long idLList)不不要合并為LList ggetByIId(Lonng. ids),因因為獲取一個個對象時也是是返回Lisst,不方便便。

21、問題:有了DaoBaase與DaoImmplBasse,還要用用UserDDao、RoleDDao嗎?答:要用。因為為UserDDao或RooleDaoo中的方法可可以分為有公公有的方法與與特有的方法法兩部分。公公有的方法是是通過繼承BBaseDaao得到的,特特有的方法要要寫在自己里里面(BasseDao中中是沒有的)。UserDaooImpl已已經(jīng)繼承了BBaseDaaoImpll,就不實現(xiàn)現(xiàn)UserDDao可以嗎嗎?答:不可以。否否則UserrDao uuserDaao = nnew UsserDaooImpl(); 就不不成立。使用反射獲取類類型參數(shù)的真真實類型的代代碼如下:publi

22、cc DaoBBaseImmpl () Type type = thiis.gettClasss().geetGeneericSuupercllass();ParammeteriizedTyype ptt = (PParameeterizzedTyppe) tyype;this.clazzz = (CClass) ppt.gettActuaalTypeeArgumments()0;說明:使用Sessiion時,不不要自己創(chuàng)建建,也不要管管理事務(wù),直直接調(diào)用geetSesssion()即可。暫時不實現(xiàn)geetSesssion()方法,在后面面的事務(wù)管理理中實現(xiàn):proteected Sessii

23、on geetSesssion() throww new UnnsuppoortedOOperattionExxceptiion();事務(wù)管理(Seessionn管理)事務(wù)邊界。1,一個事務(wù)的的范圍是一個個業(yè)務(wù)操作。轉(zhuǎn)帳()A - 1100; / upddate/ thhrow eexcepttionB + 1100; / upddate2,在Dao中中只是使用SSessioon,而不管管理Sesssion與事事務(wù)3,一次請求的的執(zhí)行過程1,在Acttion中要要做什么?1,獲取用用戶輸入2,進(jìn)行業(yè)業(yè)務(wù)處理(調(diào)調(diào)用業(yè)務(wù)方法法)3,給用戶戶反饋(轉(zhuǎn)到到一個顯示頁頁面)事務(wù)說明:事務(wù)務(wù)的范圍是一一

24、個業(yè)務(wù)方法法,而不是一一個數(shù)據(jù)庫操操作。可以用用銀行轉(zhuǎn)賬的的例子來說明明。事務(wù)管理就是要要解決兩個問問題:在同一個請求中中怎么使用同同一個Sesssion?怎么才能不重復(fù)復(fù)寫業(yè)務(wù)方法法中的開關(guān)SSessioon與管理事事務(wù)的模板代代碼?解決思路:第一個問題:使使用SesssionFaactoryy.getCCurrenntSesssion()第二個問題:使使用過濾器,攔攔截的地址為為“*.doo”。說明:每個請求使用一一個線程來執(zhí)執(zhí)行。同時執(zhí)行的多個個請求是多個個不同的線程程。先后的兩次請求求,有可能使使用的是同一一個線程(WWeb容器有有線程池)。要使用SesssionFaactoryy.g

25、etCCurrenntSesssion()方法,需要要先在hibbernatte配置文件件中做如下配配置,否則不不能使用(會會報錯):“threead”配配置后影響的的行為如下:SessionnFactoory.geetCurrrentSeessionn()獲取當(dāng)前線程對對應(yīng)的Sesssion,如如果沒有(一一個線程中的的第一次調(diào)用用),就會創(chuàng)創(chuàng)建一個Seessionn并關(guān)聯(lián)到當(dāng)當(dāng)前線程后返返回。Tmiit()提交事務(wù),在提提交后會自動動關(guān)閉SesssionTransacction.rollbback()回滾事務(wù),在回回滾后會自動動關(guān)閉Sesssion說明:如果配置置了currrentSees

26、sionnConteext,在提提交或回滾事事務(wù)后會自動動關(guān)閉Sesssion。使使用時就不要要再調(diào)用關(guān)閉閉的代碼了。在關(guān)閉的時候就會出現(xiàn)異常了。注意:SesssionFaactoryy.opennSessiion()后后,本次打開開的Sesssion不會會與當(dāng)前線程程綁定,也就就是說用SeessionnFactoory.geetCurrrentSeessionn()是拿不不到的!對象管理(BeeanFacctory)使用工廠模式完完解決對實現(xiàn)現(xiàn)類依賴的問問題,并使用用配置文件配配置要使用的的實現(xiàn)類。需需要一個工具具類,名為BBeanFaactoryy,其中有一一個獲取實現(xiàn)現(xiàn)類的方法,可可以定

27、義為:Object BeanFFactorry.gettBean( clazzz ); 或 T BBeanFaactoryy.getBBean(CClass cllazz)在實現(xiàn)時,所使使用的實現(xiàn)類類應(yīng)是在配置置文件(BeeanFpeertiess)中配置的的。解決提交的表單單內(nèi)容的中文文亂碼因為所有的頁面面都將使用uutf-8編編碼,所以提提交的表單也也是utf-8編碼。在在過濾器中設(shè)設(shè)置requuest的編編碼為utff-8就可以以解決POSST方式提交交表單的中文文亂碼問題: public void doFillter(SServleetRequuest rrequesst, Seerv

28、lettRespoonse rresponnse, FFilterrChainn chaiin) requesst.settCharaacterEEncodiing(uutf-8);chain.doFillter(rrequesst, reesponsse);對于GET方式式亂碼不做處處理。如做處處理,可使用用包裝或代理理的方式。出現(xiàn)問題了,怎怎么辦?解決異常的方法法先看一下是什么么異常。比如如NullPPointeerExceeptionn,是說明某某行代碼中的的“.”前面面的對象為nnull;或或是異常jaava.laangClaassNottFounddExcepption,是是找不到類

29、異異常。這時還還要看異常的的類型與后面面的簡單信息息,如javva.lanng.ClaassNottFounddExcepption: javaa.langg.Striing。說明明是javaa.langg.Striing這個類類找不到。在在這一步要搞搞清楚是什么么錯誤。找到出錯的代碼碼位置。在異常信息中會會顯示出錯時時執(zhí)行的代碼碼是在哪一行行,并且有超超鏈接,點擊擊就可以了。錯誤不在Javva代碼中,如如異常javvax.seervlett.ServvletExxceptiion: oorg.appache.strutts.chaain.coommandds.InvvalidPPathExx

30、ceptiion: NNo acttion cconfigg founnd forr the speciified url.就就是說訪問的的.do地址址沒有進(jìn)行AActionn配置,這時時就知道應(yīng)該該打struuts-coonfig.xml。根據(jù)異常類型進(jìn)進(jìn)行推測,一一般的異常就就可以解決了了。如NulllPoinnterExxceptiion,就找找這一行中的的“.”然后后看是不是為為null,如如果是,找出出某對象為nnull的原原因,問題就就解決了。說明:調(diào)試代碼時,最最好關(guān)閉所有有其他的工程程,在有多個個工程代碼相相近的情況下下尤其要這樣樣做,比如有有兩個工程分分別為ItccastOA

31、A_1、IttcastOOA_2。否否則可能會出出現(xiàn)代碼寫錯錯地方的情況況,或是點擊擊異常信息中中的超鏈接,轉(zhuǎn)轉(zhuǎn)到的是另外外一個工程中中的相同名稱稱的類中。異常要看最下面面的,即最后后一個“Caaused by:”,因因為他是最里里層的。上面面的異常都是是捕獲某異常常后包裝后再再次拋出的。一些的異常的解解決辦法java.laang.IlllegallArgummentExxceptiion: nnode tto traaversee cannnot bee nulll!java.laang.IlllegallArgummentExxceptiion: nnode tto traaversee

32、cannnot bee nulll!org.hibbernatte.hqll.ast.util.NodeTTraverrser.ttraverrseDeppthFirrst(NoodeTraaverseer.javva:31)org.hibbernatte.hqll.ast.QueryyTransslatorrImpl.parsee(QuerryTrannslatoorImpll.javaa:254)org.hibbernatte.hqll.ast.QueryyTransslatorrImpl.doCommpile(QueryyTransslatorrImpl.java:157)org.hib

33、bernatte.hqll.ast.QueryyTransslatorrIpiile(QuueryTrranslaatorImmpl.jaava:1111)org.hibbernatte.enggine.qquery.HQLQuueryPllan.(HQLQuueryPllan.jaava:777)org.hibbernatte.enggine.qquery.HQLQuueryPllan.(HQLQuueryPllan.jaava:566)原因1: HQQL語順的詞詞法有錯誤,這這時應(yīng)找到出出錯的代碼在在哪一行,找找出HQL中的語語法錯誤。java.laang.NooSuchMMethoddE

34、rrorr: orgg.hibeernatee.hql.antlrr.HqlBBasePaarser.recovver(Laantlr/RecoggnitioonExceeptionn;Lanttlr/coollecttions/impl/BitSeet;)Vjava.laang.NooSuchMMethoddErrorr: orgg.hibeernatee.hql.antlrr.HqlBBasePaarser.recovver(Laantlr/RecoggnitioonExceeptionn;Lanttlr/coollecttions/impl/BitSeet;)Vat org.hiberr

35、nate.hql.aantlr.HqlBaaseParrser.sstatemment(HHqlBasseParsser.jaava:1779)at org.hiberrnate.hql.aast.QuueryTrranslaatorImmpl.paarse(QQueryTTransllatorIImpl.jjava:2248)at org.hiberrnate.hql.aast.QuueryTrranslaatorImmpl.dooCompiile(QuueryTrranslaatorImmpl.jaava:1557)at org.hiberrnate.hql.aast.QuueryTrra

36、nslaatorImmpl.coompilee(QuerryTrannslatoorImpll.javaa:111)at org.hiberrnate.enginne.queery.HQQLQuerryPlann.(HQQLQuerryPlann.javaa:77)at org.hiberrnate.enginne.queery.HQQLQuerryPlann.(HQQLQuerryPlann.javaa:56)at org.hiberrnate.enginne.queery.QuueryPllanCacche.geetHQLQQueryPPlan(QQueryPPlanCaache.jjav

37、a:772)at org.hiberrnate.impl.AbstrractSeessionnImpl.getHQQLQuerryPlann(AbsttractSSessioonImpll.javaa:133)at org.hiberrnate.impl.AbstrractSeessionnImpl.creatteQuerry(AbsstracttSessiionImppl.javva:1122)at org.hiberrnate.impl.SessiionImppl.creeateQuuery(SSessioonImpll.javaa:16233). 40 more原因1:只要是是java.

38、lang.NoSucchMethhodErrror: oorg.hiibernaate.hqql.anttlr.,一般是由由于HQL語順的的詞法有錯誤誤,如寫查詢詢所有Useer時”FROMM Userr”,F(xiàn)rom后沒沒有加空格等等。這時應(yīng)找找到出錯的代代碼在哪一行行,找出HQQL中的語法法錯誤。原因2:有一同同學(xué)也報類似似的錯誤,不不過他的原因因是jar包沖突突。在他的llib/中有有:antllr2.7.6與antlrr2.7.22,刪除anttlr2.77.2后就正正常了。他的的異常信息如如下:Caused by: jjava.llang.NNoSuchhMethoodErroor:

39、orrg.hibbernatte.hqll.antllr.HqllBasePParserr.recoover(LLantlrr/RecoognitiionExcceptioon;Lanntlr/ccollecctionss/impll/BitSSet;)VVat org.hiberrnate.hql.aantlr.HqlBaaseParrser.sstatemment(HHqlBasseParsser.jaava:1779)at org.hiberrnate.hql.aast.QuueryTrranslaatorImmpl.paarse(QQueryTTransllatorIImpl.jjav

40、a:2248)at org.hiberrnate.hql.aast.QuueryTrranslaatorImmpl.dooCompiile(QuueryTrranslaatorImmpl.jaava:1557)at org.hiberrnate.hql.aast.QuueryTrranslaatorImmpl.coompilee(QuerryTrannslatoorImpll.javaa:111)at org.hiberrnate.enginne.queery.HQQLQuerryPlann.(HQQLQuerryPlann.javaa:77)at org.hiberrnate.enginne

41、.queery.HQQLQuerryPlann.(HQQLQuerryPlann.javaa:56)at org.hiberrnate.enginne.queery.QuueryPllanCacche.geetHQLQQueryPPlan(QQueryPPlanCaache.jjava:772)at org.hiberrnate.impl.AbstrractSeessionnImpl.getHQQLQuerryPlann(AbsttractSSessioonImpll.javaa:133)at org.hiberrnate.impl.AbstrractSeessionnImpl.creatteQuerry(AbsstracttSessiionImppl.javva:1122)at org.hiberrnate.impl.SessiionImppl.creeateQuuery(SSessioonImpll.javaa:16233). 42 morejava.laang.IlllegallArgummentExxceptiion: RResourrces ccannott be nnull.異常信息如下:java.laang.IlllegallArgummentExxceptiion: RResourrces ccannott be nnull.at mmo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論