版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年松滋市公安局招聘警務(wù)輔助人員35人參考考試題庫及答案解析
- 2025廣東廣州醫(yī)科大學(xué)藥學(xué)院特聘教授向俊鴻課題組招聘研究助理1人模擬筆試試題及答案解析
- 2025廣西欽州市交通運輸局機關(guān)及局屬事業(yè)單位編外工作人員和“12328”熱線工作人員招聘8人備考筆試試題及答案解析
- 2025年甘肅省定西市通渭縣招聘鄉(xiāng)村醫(yī)生備考考試題庫及答案解析
- 2025西藏阿里地區(qū)革吉縣司法局招聘專職人民調(diào)解員3人參考考試題庫及答案解析
- 2025上海交通大學(xué)醫(yī)學(xué)院附屬瑞金醫(yī)院前沿治療研究中心科研、醫(yī)技崗位招聘備考考試試題及答案解析
- 2025年大理州強制隔離戒毒所公開選調(diào)事業(yè)單位工作人員備考題庫完整答案詳解
- 2025年上饒市廣信區(qū)人民法院公開招聘勞務(wù)派遣工作人員14人備考題庫含答案詳解
- 2025年揚州市公安局面向社會公開招聘警務(wù)輔助人員備考題庫及一套參考答案詳解
- 2025年民生銀行蘭州分行社會招聘備考題庫完整參考答案詳解
- 2025年及未來5年市場數(shù)據(jù)中國3-丁烯-1-醇行業(yè)市場深度分析及發(fā)展前景預(yù)測報告
- 2025年新沂市教育局直屬學(xué)校招聘真題
- 直播間陪跑合同范本
- 如何樹立消防員榮譽觀
- 2026中國高校實驗室危險品智能管理平臺市場滲透分析報告
- 深圳市龍崗區(qū)2025年生物高一上期末調(diào)研模擬試題含解析
- (2025年)法院聘用書記員試題及答案
- 具身智能+醫(yī)療康復(fù)中多模態(tài)感知與自適應(yīng)訓(xùn)練系統(tǒng)研究報告
- 廣東省深圳市寶安區(qū)2026屆高一上生物期末聯(lián)考試題含解析
- ISO14644-5-2025潔凈室及相關(guān)受控環(huán)境-第5部分運行中文版
- 2025年國家開放大學(xué)《法學(xué)導(dǎo)論》期末考試備考題庫及答案解析
評論
0/150
提交評論