辦公自動化系統(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頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

概述

0A是OfficeAulomalion的縮寫,本意為利用技術(shù)的手段提高辦公的效率,進而實現(xiàn)辦公的自動化處理

實現(xiàn)信息化、無紙化辦公,可方便的生成統(tǒng)計報表等。

0A是OFFICEAUTOMATION的縮寫,本意為利用技術(shù)的手段提高辦公的效率,進而實現(xiàn)辦公的自動化處理。采

用Internet/Intranet技術(shù),基于工作流的概念,使企業(yè)內(nèi)部人員方便快捷地共享信息,高效地協(xié)同工作;改

變過去復(fù)雜、低效的手工辦公方式,實現(xiàn)迅速、全方位的信息采莫、信息處理,為企業(yè)的管理和決策提供科學(xué)

的依據(jù)。

0A軟件解決企業(yè)的日常管理標(biāo)準(zhǔn)化、增加企業(yè)的可控性、提高企業(yè)運轉(zhuǎn)的效率的根本問題。范圍涉及日常

行政管理、各種事項的審批、辦公資源的管理、多人多部門的協(xié)同辦公、以及各種信息的溝通與傳遞??梢愿?/p>

括的說,0A軟件跨越了生產(chǎn)、銷售、財務(wù)等具體的業(yè)務(wù)范疇,更集中關(guān)注「企業(yè)日常辦公的效率和可控性,是

企業(yè)提高整體運轉(zhuǎn)能力不可缺少的軟件工具。

系統(tǒng)作用

組織的核心競爭力源自單位對內(nèi)外部資源的有效利用。對它們之間的關(guān)系進行協(xié)調(diào),最大限度的發(fā)揮所有

資源的作用,并用系統(tǒng)的觀點,在整個系統(tǒng)價值最大化的基礎(chǔ)上又發(fā)揮各個資源的作用,使資源的運作產(chǎn)生協(xié)

同效用。因此可通過協(xié)同辦公系統(tǒng)打造單位的核心競爭力。本協(xié)同辦公系統(tǒng)的主要作用為:

1>建立內(nèi)部的通信平臺。

2、建立信息發(fā)布的平臺。

3、文檔管理的自動化。

4、工作流程的自動化。

5、行政日常事務(wù)處理。

6、平安機制的可靠性。

本系統(tǒng)旨在加速單位信息化進程,充分利用計算機和現(xiàn)代通訊手段面向單位效勞。建立單位內(nèi)部信息交流

的快速通道,以共享信息資源。強化部門業(yè)務(wù)管理,加強各業(yè)務(wù)部門之間的交流。實現(xiàn)單位信息的快速上傳下

達,促進協(xié)同辦公。提高辦公效率,為各級領(lǐng)導(dǎo)及業(yè)務(wù)人員提供軸助辦公和決策效勞。

1、本系統(tǒng)將最大限度地提高辦公效率和辦公質(zhì)量,降低管理和辦公本錢,改善辦公環(huán)境和條件,提高辦

公管理和決策的自動化和科學(xué)化水平。

2、以人為中心,致力于幫助用戶實現(xiàn)共享資源、標(biāo)準(zhǔn)流程、推動執(zhí)行的目的。幫助用戶節(jié)省辦公費用,

減少中間環(huán)節(jié),優(yōu)化業(yè)務(wù)流程,提高整體效率,促進管理進步。

設(shè)計原則

以應(yīng)用為核心,要突出“實用、易用、簡潔、穩(wěn)定"。既注宣實效,滿足用戶的現(xiàn)實需要,又為系統(tǒng)的后

續(xù)升級和擴展留有余地。在技術(shù)實現(xiàn),,要突出“結(jié)構(gòu)清晰、實現(xiàn)合理、通俗易懂(簡單)”。

1.實用:滿足用戶現(xiàn)實需要,解決實際問題,做細核心功能。

2.易用:使用方便,各項功能一目了然。滿足用戶的使用習(xí)慣,易使用、易維護、易升級。實現(xiàn)"傻瓜”

式的操作,將實施、培訓(xùn)本錢和周期降到最低。

3.簡潔:頁面簡潔,功能簡潔,每一個元素都有存在的意義。

4.穩(wěn)定:從底層數(shù)據(jù)庫到功能層經(jīng)過嚴格測試,能在不同的硬件環(huán)境中長期平穩(wěn)運行。

功能說明

0A是輔助辦公的軟件,使用0A與不使用0A相比照的好處是:可以用計算機管理所有的數(shù)據(jù),并可以方便

的實現(xiàn)統(tǒng)計與報表的功能。提高辦公效率。(實現(xiàn)信息化)。

以下是一個0A系統(tǒng)的全部功能列表:

系統(tǒng)模塊功能則表

知識管理下鼓中心燃景制度檔案中心網(wǎng)絡(luò)收盤實用工具|

部n設(shè)置周位設(shè)置檔案管理培訓(xùn)i已錄獎或改

人力貨源

職位變更人事合同類別維護

公共辦公系統(tǒng)客戶僮息查看全部客戶商信息聯(lián)系人信息采購信息

E

項目馥單記錄合同管理故障維修客戶管理維妒

組織機構(gòu)商位定義用戶煉號權(quán)限姐公共通訊姐

系統(tǒng)管理

系沈日志基礎(chǔ)敷據(jù)設(shè)置后臺數(shù)據(jù)設(shè)置

短消息文件傳遞個人文件柜電子郵件手機短信個人考薊

個人辦公系統(tǒng)

今日外出通訊錄全文檢索

網(wǎng)上交流系統(tǒng)論壇憤窠領(lǐng)導(dǎo)信箱視頻會議實時席天KetMeetmc

我的工作日程他人工作日程工作任務(wù)工作日記工作計劃工作管理權(quán)限

時間A任務(wù)系統(tǒng)任務(wù)臬面批量任務(wù)技項目查貨任務(wù)查詢我的任務(wù)

任務(wù)管理

績奴統(tǒng)計任務(wù)管辦任務(wù)管理設(shè)置

起草申請我的申請查詢待我審批姬我審批文件闋讀盤單管理

市批流轉(zhuǎn)系統(tǒng)

審批數(shù)據(jù)查詢報要查看審批管理

發(fā)文擬稿發(fā)文簞批領(lǐng)導(dǎo)簽發(fā)發(fā)文登記發(fā)文打印

發(fā)文管理系統(tǒng)

發(fā)文裳章文件分發(fā)發(fā)文監(jiān)控

公文管理系統(tǒng)

收文登記牧文帔領(lǐng)導(dǎo)批示收文分發(fā)牧文閨讀

收文管理系統(tǒng)

承辦結(jié)果收文監(jiān)控收文類別

我聞B9片密聞公告通知部門主頁電子期刊

信息發(fā)布系統(tǒng)

大事記公用相冊

工作時間設(shè)定補簽登記外出登記出差登記加班登記

考IMT理

考物查看清假查詢外出查詢出差查詢加班查詢

會議申請首存會議查詢待我參加會議我已參加會議新建會議紀(jì)要

會議管理

會議紀(jì)要查詢待開會議查詢已開會議查詢會議安查詢會議爽火設(shè)置

用車中謂源車管現(xiàn)我的申謂記錄車狐狀態(tài)車洞檔案

姊臺行政系統(tǒng)車輛雷理

私車公用

新建物品購買登記領(lǐng)用登記在庫查詢領(lǐng)用查詢

辦公用品

物品類別

困書管建圖書登記國書查詢借闋登記返還登記圖書類別

固定淺產(chǎn)資產(chǎn)登記費產(chǎn)董詢費產(chǎn)折舊費產(chǎn)類別折舊類別

自定義系統(tǒng)用戶根據(jù)本系統(tǒng)的開放接口自定義的各種業(yè)務(wù)管理系統(tǒng)

說明:不是所有的0A都有全部的功能,而是根據(jù)需要確定的,

軟件開發(fā)的步驟說明

需求確認一概要設(shè)計一詳細設(shè)計一編碼一單元測試一集成測試一系統(tǒng)測試一維護。

單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責(zé)任編寫功能代

碼,同時也就有責(zé)任為自己的代碼編寫單元測試。執(zhí)行單元測試,就是為了證明這段代碼的行為和我們期望的

一致。

集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)匕將所有模塊按照設(shè)計要求(如根據(jù)結(jié)構(gòu)圖)組

裝成為子系統(tǒng)或系統(tǒng),進行集成測試。實踐說明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能

正常的工作。程序在某些局部反映不出來的問題,在全局.上很可能暴露出來,影響功能的實現(xiàn)。

系統(tǒng)測試是將已經(jīng)確認的軟件、計算機硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進行信息系統(tǒng)的各種組

裝測試和確認測試,其目的是通過與系統(tǒng)的需求相比較,發(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)。

分層

一、JavaEE的三層架構(gòu)

2,一定要3層嗎?

不一定。分3層是推薦的,而不是必須的,應(yīng)根據(jù)自己的具體情況進行安排。我們?nèi)绻褂?層的結(jié)構(gòu),用

起來就麻煩,因為在Service中會有一局部方法只是直接調(diào)用Dao中的方法,而Dao中的方法只是調(diào)用Session

完成某操作。此時分2層更好,即在Service中可直接操作Session,以簡化結(jié)構(gòu)。其實Hibemate已經(jīng)可以支

持多種數(shù)據(jù)庫。

3,一定要使用接口嗎?

不一定。以前就有同學(xué)問我:“在設(shè)計程序時確定的技術(shù)在開發(fā)后一般不會更換的,實現(xiàn)類一般也不會更

換,這種情況還用接口嗎,一般的小工程是不是可以不使用接口?"。是的,如果不會變(一般也不會變),這

是完全可以的。

我們所學(xué)習(xí)的框架、技術(shù)都是解決問題的推薦方案,而不是必須要用的。遇到問題后優(yōu)化使用成熟的技術(shù)

與方案,以防止很多潛在的或后發(fā)的問題,防止走不必要的彎路。

所用框架、技術(shù)

編號工具版本說明

1.Struts1.3.8

2.JSTL1.1

3.Hibernate3實現(xiàn)持久化操作

4.jBPM工作流支持

5.Junit4單元測試

6.jQuery

說明:還有jQuery,validate與jQuery,treeview等小插件

開發(fā)環(huán)境

操作系統(tǒng)WindowsXP

開發(fā)工具MyEclipse6.0

數(shù)據(jù)隹MySql5.0.22

Web容器Tomcat6.0

瀏覽器IE6

說明:推薦使用MyEelipse,這樣出現(xiàn)工具問題可以一起解決。當(dāng)然也可以使用自己勉悉的工具,如

Eclipse、NetBeans^Intellij?重點是代碼,不是工具。應(yīng)使用有效的工具。

約定

1,工程中所有的文件都采用utf-8編嗎。所有的貝血都是使用utf-8編碼,這樣方便解決表單內(nèi)容的亂嗎問

題。亂碼一般情況下是亂用編碼產(chǎn)生的。

2,實體的主鍵屬性的類型使用Long型。

代碼標(biāo)準(zhǔn)

L命名:使用駝峰命名法。

2,注釋:在代碼中參加適當(dāng)?shù)淖⑨專赫f明步驟,與說明非簡單邏輯。

3,空行:在代碼中參加適當(dāng)?shù)目招?,就像寫文章時要分段一樣(增強可讀性)。

總之,要保證代碼的清晰、簡潔、可讀。

詳細設(shè)計

T0D0詳見每一個模塊對應(yīng)的文檔

環(huán)境與工程配置

主要配置開發(fā)工具、MyEcIipse工程、數(shù)據(jù)庫。

1,新建W業(yè)工程,名稱為:IicuslOA。

2,使用數(shù)據(jù)庫名為:itcastoa_${當(dāng)前日期}。

3,工程編碼使用UTF-8。不要改workspace編碼,因為他會影響里面的所有工程。

配置工具

配置快捷鍵

1,把ContentAssist設(shè)為Alt+/

2,把WordCompletion設(shè)為Alt+.

3,其他常用快捷鍵說明:

Alt+/ContentAssist代碼提示

Ctrl+T顯小類的繼承結(jié)構(gòu)

Ctrl+0列出類中的成員(成員變量、方法等)

Ctrl+/注釋/取消注釋

Ctrl+Shift+O導(dǎo)入要使用的包、并去除不使用的包

Ctrl+Shift+F格式化當(dāng)前文件中的代碼/格式化選中的代碼

Ctrl+Alt+Up復(fù)制當(dāng)前行到下面

Ctrl+Alt+Down復(fù)制當(dāng)前行到上面

Ctrl+D刪除當(dāng)前行/刪除選中文本占的所有行

Sliift+EnltJi相當(dāng)丁按End后再按Enlei

Alt+Left

Alt+Right

Ctrl+Shift+X變?yōu)榇髮?/p>

Ctrl+Shift+Y變?yōu)樾?/p>

配置文件的默認編碼

1,配置JSP的默認編碼為utf-8

2,配置JavaScript的默認編碼為utf-8

說明:在MyEclipse7.x不用修改,

配置格式化的代碼樣式

1,使用Ctrl+Shift+F可以格式化代碼。

2,在WindowPreferencesJavaCodeStyleFormatter中可以設(shè)置代碼樣式。要把Java代碼與注釋的

行寬設(shè)為130。(其他使用默認洋式)

3,搜索XMLSources,修改xml的行寬為130。(不考慮打印的情況)

MyEclipse工具使用說明

1,導(dǎo)入工程時可以直接選擇一人zip文檔:ExistingProjectsintoWorkspace—>Selectarchive

file。

2,二程改名后,發(fā)果發(fā)布到Toncat下,對應(yīng)的應(yīng)用的名稱不一定改變。這個名稱是在MyEclipse

Web中的WebContext-root中配置的。

創(chuàng)立數(shù)據(jù)庫

使用MySql數(shù)據(jù)庫。創(chuàng)立數(shù)據(jù)庫時,要注意編碼要支持中文。建表語句如下:

createdatabaseitcastocidefaultcharactersetutf8;

showcreatedatabaseitcastoa;

新建Web工程并準(zhǔn)備環(huán)境

新建一個怩bProject,并設(shè)置工程的編碼為UTF-8。

添加框架環(huán)境

1?添加Junit4的Jar包。

2,添加Strutsl.3.8環(huán)境:

a)jar包

b)配置文件(struts-config.xml、修改web.xml)、國際化資源文件、自定義標(biāo)簽庫的?LD文件。配為

禮do攔截的請求。

3,添加Hibernate環(huán)境:

a)jar包(含JDBC驅(qū)動的jar包)

b)配置文件(hibernate.cfg.xml)。

4,添加jBPM環(huán)境(Jbpm的jar包中已包含Hibernate的jar包〕。

說明:

1,JSTL已包含在JavaEE5.0中,所以不用配置。

2,不要引用外面的Jar包,應(yīng)全部拷貝到工程中。

配置數(shù)據(jù)庫

修改Hibernate,cfg.xml中的數(shù)據(jù)庫連接信息。并在hibernate,cfg.xml中做如下配置:

<!—顯示sql語句一>

<propertyncime=,,show_sql,,>true</property>

<1—自動更新表結(jié)構(gòu)>

<propertyname=,,hbm2ddl.auto*>update</property>

目錄結(jié)構(gòu)

源碼文件夾

srcT程源代碼

config配置又件

test單元測試

WebRoot文件夾下

scriptJavaScript腳木文件

styleCSS樣式文件

WEB-INF/jspjsp頁面文件(再創(chuàng)立子文件夾分類存放)

包結(jié)構(gòu)

使用三層:顯示層(View),業(yè)務(wù)層(Service),數(shù)據(jù)訪問層(Dao)

包名說明

cfi.iluasL.od.duniciiii實體(Domain)

cn.itoast,oa.daoDao接口

cn.itcast.oa.dao.implDao的實現(xiàn)類

cn.itcast.oa.serviceService接口

cn.itcast.oa.service,implService的實現(xiàn)類

cn.itcast.oa.web.strutsStruts有關(guān)的類

cn.itcast.oa.web.struts,actionStruts的Action

cn.itcast.oa.web.struts.formbeanStruts的FormBean(ActionForm)

cn.itcast.oa.util一些工具類

cn.itcast.oa.cfg

cn.itcast.oa.web.fi1ter

基礎(chǔ)功能

BaseDao與BaseDaoImp1的設(shè)計

每個實體都應(yīng)有一個對應(yīng)的Dao,他封裝了對這個實體的數(shù)據(jù)庫操作。例

實體Dao接口實現(xiàn)類

User->UseiDao->UserDaoImp1

Role一>Ro1eDao一>RoleDaoImpl

Department—>DcpartmcntDao->DcpartmcntDaoImpl

Article——>ArticleDao—>ArticleDaoImpl

說明:

1,實體的Dao接口要繼承BaseDao接口。

2,Dao的實現(xiàn)類要繼承DaoImplBase類。

3,也可以不繼承指定的接口或類,這樣就要自己寫相應(yīng)的方法。

4,TgetById(Longid)與List<T>getByldList(Long[]idList)不要合并為ListgetById(Long...

ids),因為獲取一個對象時也是返【可List,不方便。

問題:

1,有了DaoBase與DaoImp1Base,亦要用UserDao、RolcDao嗎?

答:要用。因為UscrDao或RohDa。中的方法可以分為有公有的方法與特有的方法兩局部。公有的方法是通

過繼承BaseDa。得到的,特有的方法要寫在自己里面(BaseDa。中是沒有的)。

2,UserDaolmpl已經(jīng)繼承了BaseDaoImpl,就不實現(xiàn)UserDa??梢詥??

答:不可以。否則UserDaouserDao=newUserDaolmpl();就不成立。

使用反射獲取類型參數(shù)的真實類型的代碼如下:

publicDaoBaseImp1(){

Typetype=this.getClassO.getGenericSuperclassO;

ParamctcrizcdTypept=(ParameterizedTypc)type;

this,clazz=(Class<T>)pt.getActualTypeArgumentsO[9];

)

說明:

1,使用Session時,不要自己創(chuàng)立,也不要管理事務(wù),直接調(diào)用getSession()即可。

2,暫時不實現(xiàn)getSession。方法,在后面的事務(wù)管理中實現(xiàn):

protectedSessiongetSession(){

thrownewUnsupportedOperationException();

)

事務(wù)管理(Session管理)

事務(wù)邊界。

i,一個事務(wù)的范圍是一個業(yè)務(wù)操作。

轉(zhuǎn)帳(){

A-100;//update

//throwexception

B+100;//update

)

2,在Dao中只是使用Session,而不管理Session與事務(wù)

3,一次請求的執(zhí)行過程

1,在Action中要做什么?

1,獲取用戶輸入

2,進行業(yè)務(wù)處理(調(diào)用業(yè)務(wù)方法)

3,給用戶反應(yīng)(轉(zhuǎn)到一個顯示頁面D

HibernateSessionFilter

*.do

ActionScrvlct>Action

beginTransactioncommitTransaction

事務(wù)控婢是兩個問題:

1.怎么獲取同一個Session?

2.怎么才能不重復(fù)的寫開關(guān)Session與事務(wù)的模板代碼?

1,事務(wù)說明:事務(wù)的范圍是一個業(yè)務(wù)方法,而不是一個數(shù)據(jù)庫操作??梢杂勉y行轉(zhuǎn)賬的例子來說明。

2,事務(wù)管理就是要解決兩個問題:

a)在同一個請求中怎么使用同一個Session?

b)怎么才能不重復(fù)寫業(yè)務(wù)方法中的開關(guān)Session與管理事務(wù)的模板代碼?

3,解決思路:

a)第一個問題:使用SessionFactory.getCurrentSessionO

b)第二個問題:使用過濾器,攔截的地址為“*.do"。

4,說明:

a)每個請求使用一個線程來執(zhí)行。

b)同時執(zhí)行的多個請求是多個不同的線程。

c)先后的兩次請求,有可能使用的是同一個線程(Web容器有線程池)。

要使用SessionFactory.getCuirentSessionO方法,需要先在hibernate配置文件中做如卜配置,否則不

能使用(會報錯):"<prcportynaiip="hiharnatp.r.i】rrant_ap"icn_rcntpxt_clAsOthraark/prcparty)”配

置后影響的行為如下:

SessionFactory.getCurrentSession()獲取當(dāng)前線程對應(yīng)的Session,如果沒有

(一個線程中的第一次調(diào)用),就會創(chuàng)立

一個Session并關(guān)聯(lián)到當(dāng)前線程后返回。

Transaction,commit()提交事務(wù),在提交后會自動關(guān)閉Session

Transaction,rollback()回滾事務(wù),在回滾后會自動關(guān)閉Session

說明:如果配置了currentSessionContext,在提交或問滾事務(wù)后會自動關(guān)閉Session。使用時就不要再調(diào)

用關(guān)閉的代碼了。在關(guān)閉的時候就會出現(xiàn)異常了。

注意:SessionFactory.opcnSession()后,本次翻開的Session不會與當(dāng)前線程綁定,也就是說用

SessionFactory.getCurrentSession()是拿不到的!

對象管理(BeanFactory)

使用工廠模式完解決對實現(xiàn)類依賴的問題,并使用配置文件配置要使用的實現(xiàn)類。需要一人工具類,名為

BeanFactory,其中有一個獲取實現(xiàn)類的方法,可以定義為:

ObjectBeanFactory.getBean(clazz);或

<T>TBeanFactory.getBean(Class<T>clazz)

在實現(xiàn)時,所使用的實現(xiàn)類應(yīng)是在配置文件(BeanFactory.properties)中配置的。

解決提交的表單內(nèi)容的中文亂碼

因為所有的頁面都將使用utf-8編碼,所以提交的表單也是utf-8編碼。在過濾器中設(shè)置request的編碼為

utf-8就可以解決POST方式提交表單的中文亂碼問題:

publicvoiddoFi1ter(ServletRequestrequest,ServletResponseresponse,FilterChainchain){

request.setCharacterEncoding("utf-8");

chain.doFiIter(request,response);

)

對于GET方式亂碼不做處理。如做處理,可使用包裝或代理的方式。

出現(xiàn)問題了,怎么辦?

解決異常的方法

1?先看一下是什么異常。比方NullPoinlerException,是說明某行代碼中的"前面的對象為nul1;或是異

常java.langClassNotFoUndException,是找不到類異常。這時還要看異常的類型與后面的簡單信息,如

java.lang.ClassNotFoundException:java.lang.Strings說明是java.lang.String這個類找不到。在這

一步要搞清楚是什么錯誤。

2,找到出錯的代碼位置。

a)在異常信息中會顯示出錯時執(zhí)行的代碼是在哪一行,并目有超鏈接,點擊就可以了。

b)錯誤不在Java代碼中,如異常javax.servlet.ServletException:

org.apache,struts.chain.commands.InvalidPathException:Noactionconfigfoundforthe

specifiedurl.就是說訪問的.do地址沒有進行Action配置,這時就知道應(yīng)該打struts-config.xml。

3,根據(jù)異常類型進行推測,一般的異常就可以解決了。如NullPointerException,就找這一行中的然后

看是不是為null,如果是,找出某對象為null的原因,問題就解決了。

說明:

1,調(diào)試代碼時,最好關(guān)閉所有其他的工程,在有多個工程代碼相近的情況下尤其要這樣做,比方有兩個工程

分別為ItcastOA_KItcastOA_2o否則可能會出現(xiàn)代碼寫錯地方的情況,或是點擊異常信息中的超鏈接,

轉(zhuǎn)到的是另外一個工程中的相同名稱的類中。

2.異常要看最下面的,即最后一個"Cau-dhy:〃,因為他是最里層的.上面的異常都是捕獲某異常后包裝后

再次拋出的。

一些的異常的解決方法

java.lang.IllegalArgumentException:nodetotraversecannotbe

null!

java.lang.Illcga1ArgumcntExcoption:nodetotraversecannotbenull!

org.hibernate.hql.ast.util.NodeTraverser.traverseDepthFirst(NodeTra/erser.java:31)

org.hibernate.hql.ast.QucryTranslatorlmpl.parse(QueryTranslatorImpL.java:254)

org.hibernate.hql.ast.QueryTranslatorlmpl.doCompi1e(QueryTrans1atorImp1.java:157)

org.hibernate.hql.asl.QueryTranslatorlmpl.compi]e(QueryTrans1alorImp1.java:111)

org.hibernate,engine,query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)

org.hibernate,engine,query.HQLQueryPlan.<init>(HQLQueryP1an.java:56)

原因1:HQL語順的詞法有錯誤,這時應(yīng)找到出錯的代碼在哪一行,找出HQL中的語法錯誤。

java.lang.NoSuchMethodError:

org.hibernate,hql.antlr.HqlBaseParser.recover(Lantlr/Recog

nitionException;Lan11r/collections/impl/BitSet;)V

java.lang.NoSuchMethodError:

org.hibernate.hql.antlr.HqlBaseParser,recover(Lan11r/RecognitionException;Landr/collections/impl/BitSel;)V

atorg.hibernate,hql.antlr.HqlBaseParser,statement(HqlBaseParser,jara:179)

atorg.hibernate,hql.ast.QueryTranslatorlmpl.parse(QueryTranslalorI叫)Ljava:248)

atorg.hibernate,hql.ast.QueryTrans1atorImp1.doCompile(QueryTranslatorlmpl.java:157)

atorg.hibernate,hql.ast.QueryTranslatorlmpl.compile(QueryTranslatorlmpl.java:111)

atorg.hibernate,engine,query.HOLOucryPlan.<init>(HOLQucryPlan.java:77)

atorg.hibernate,engine,query.HQLQueryPlan.<init>(HQLQuei、yPlan.java:56)

alorg.hibernate,engine,query.QucryPlanCachc.gellIQLQueryPlan(QueryPlanCachc.Java:72)

atorg.hibernate,impl.AbstractSessionlmpl.口etHQLQueryPlan(八bstract.SessionImp1.java:133)

atorg.hibernate,imp].AbstractSessionlmpl.crealeQuery(Abst,raclSe$sEnImpLjava:112)

atorg.hibernate,impl.Sessionlmpl.createQuery(SessionImpl.java:1623j

…40more

原因1:只要是java.lang.NoSuchMethodError:org.hibernate.hq1.ant1r...,一般是由于HQL語順的詞法有

錯誤,如寫管詢所々User時“卜ROMUser",卜Tom后沒的加空格等。這時應(yīng)找到出錯的代碼在哪一行,找出HQL

中的語法錯誤。

原因2:有一同學(xué)也報類似的錯誤,不過他的原因是jar包沖突。在他的lib/中有:antlr2.7.6與

antlr2.7.2,刪除antlr2.7.2后就正常了。他的異常信息如下:

Causedby:java.lang.NoSuchMethodError:

org.hibernate.hql.antlr.HqlBaseParser,recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet:)V

alorg.hibernate.hql.antir.IlqlBaseParser,statement(HqlBaseParser,java:179)

atorg.hibernate,hql.ast.QueryTranslatorlmpl.parse(QueryTrans1ator1up1.java:248)

alorg.hibernate,hql.ast.QueryTranslatorlmpl.doCompi1c(QueryTranslatorlmpl.java:157)

atorg.hibernate.hql.ast.QueryTranslatorlmpl.compile(QueryTranslatorlmpl.java:111)

atorg.hibernate,engine.query.HQLQucryPlan.<init>(HQLQucryPlan.java:77)

atorg.hibernate,engine,query.HQLQucryPlan.<init>(IIQLQueryP1an.java:56)

atorg.hibernate,engine,query.QueryPlanCache.getHQLQucryPlan(QueryPlanCache.java:72)

atorg.hibernate,impl.AbstractSessionlmp

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論