1 Q錛?br />
2006-2-27 21:31:59 org.apache.coyote.http11.Http11Protocol init
涓ラ噸: Error initializing endpoint
java.net.SocketException: Permission denied: listen failed
at java.net.PlainSocketImpl.socketListen(Native Method)
at java.net.PlainSocketImpl.listen(PlainSocketImpl.java:343)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at java.net.ServerSocket.<init>(ServerSocket.java:141)
at
org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
A錛?br /> 瑕佹敼涓涓嬬鍙o紝鍦═OMCAT_HOME\conf\server.xml 鎶?080鏀規垚鍏朵粬鐨勩?br /> 鍚姩涔嬪墠錛屽厛鐢?netstat -a 媯鏌ヤ竴涓?port 鏄笉
鏄凡緇忚浣跨敤浜嗐傛湁鍙兘琚玂RACLE鎴栬呮墦寮鐨凟clipse紼嬪簭鍗犵敤銆?br /> OracleOraHome92TNSListenerLISTENER1
2 Q錛?br />
JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
A: 鍘熷洜lib涓己灝憇tandard.jar鍜宻ervlet-api.jar涓や釜鏂囦歡錛屽皢涓や釜鏂囦歡鍔犲叆鐢ㄦ埛搴撲腑銆?/p>
3 閿欒錛?br />
java.lang.NullPointerException
鍘熷洜錛?鍙戠幇 dao 瀹炰緥銆?manage 瀹炰緥絳夐渶瑕佹敞鍏ョ殑涓滆タ娌℃湁琚敞鍏?
瑙e喅錛氳繖涓椂鍊欙紝浣犲簲璇ユ煡鐪嬫棩蹇楁枃浠訛紱榛樿鏄簲鐢ㄦ湇鍔″櫒鐨?log 鏂囦歡錛屾瘮濡?Tomcat 灝辨槸 [Tomcat 瀹夎鐩綍 ]/logs 錛涗綘浼氬彂鐜版彁紺轟綘錛?
鍙兘鏄細
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml
org.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml
……………………….
Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml
鍙兘鏄細
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found
org.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found
鐒跺悗浣犲氨鐭ラ亾鍘熷洜鏄洜涓洪厤緗枃浠剁殑瑙f瀽鍑轟簡閿欒錛岃繖涓氳繃 Web 欏甸潰鏄湅涓嶅嚭鏉ョ殑銆?
鏇村鐨勬槸鎸佷箙鍖栧獎灝勬枃浠跺嚭鐨勯敊璇紱瀵艱嚧浜嗘病鏈夎瑙f瀽錛涘綋鐒朵綘闇瑕佺殑鍔熻兘灝辨棤娉曚嬌鐢ㄤ簡銆?
4 閿欒錛?br />
StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage
鎴栬咃細
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
鍘熷洜錛?鍚?3
5 閿欒錛?br />
StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei
鐣岄潰閿欒鍏蜂綋鎻忚堪錛?br />
org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei
鍘熷洜涓庤В鍐籌細
<鏂規涓>浣犵殑“html:”寮澶寸殑鏍囩娌℃湁鏀懼湪涓涓?lt;html:form>涓?br />
<鏂規浜?gt;閲嶆柊鍚姩浣犵殑搴旂敤鏈嶅姟鍣紝鑷姩灝辨病鏈夎繖涓棶棰樹簡
6 閿欒錛?br />
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
鍘熷洜涓庤В鍐籌細
鍥犱負Hibernate Tools錛堟垨鑰匛clipse鏈韓鐨凞atabase Explorer錛夌敓鎴?.hbn.xml宸ュ叿涓寘鍚湁catalog="***"錛?琛ㄧず鏁版嵁搴撳悕縐幫級榪欐牱鐨勫睘鎬?灝嗚灞炴у垹闄ゅ氨鍙互浜?/p>
7 閿欒錛?br />
org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)
鍘熷洜涓庤В鍐籌細
鏂規硶1 鍒犻櫎Set鏂圭殑cascade
鏂規硶2 瑙e喅鍏寵仈鍏崇郴鍚庯紝鍐嶅垹闄?br />
鏂規硶3 鍦╩any-to-one鏂瑰鍔燾ascade 浣嗗間笉鑳芥槸none
鏈鍚庝竴鎷涳細
媯鏌ヤ竴涓媓ashCode equals鏄惁浣跨敤浜唅d浣滀負鍞竴鏍囩ず鐨勯夐」浜嗭紱鎴戠敤uuid.hex鏃舵槸娌℃湁闂鐨勶紱浣嗘槸鐢ㄤ簡native錛屽氨涓嶈浜嗭紝鎬庝箞鍔烇紵鍒犻櫎鍟婏紒
榪欎釜閿欒鍙互鍙傝鎴戠殑blog鏂囩珷錛?br />
http://m.tkk7.com/crazycy/archive/2006/06/24/54939.html
8 閿欒錛?br />
exception javax.servlet.ServletException: BeanUtils.populat
root cause
java.lang.IllegalArgumentException:Cannot invoke ***Form.set*** - argument type mismatch
鍘熷洜
榪欎釜闂寰堝鎬殑璇達紝涓哄暐璇村鎬憿錛?br />
鍏堣闂鐨勫師鍥狅細闂鍙戠敓濡備笅涓ょ鎯呭喌錛?br />
Form涓槸Date綾誨瀷
涓婁紶鏂囦歡鏃?br />
涓轟粈涔堣濂囨憿錛熶富瑕侀拡瀵笷orm鏄棩鏈熷瀷鐨勬潵璇寸殑錛涘洜涓烘垜鍋氳繃N澶氱郴緇烣orm涓兘鏄敤java.util.Date錛岀晫闈嬌鐢?lt;html:text property=”date”/>;閮芥槸娌℃湁闂鐨勩傛墍浠ョ涓嬈¢亣鍒拌繖涓敊璇椂錛屾崳榧撲簡涓涓笅鍗堛?br />
瑙e喅錛?br />
絎竴涓棶棰橈細浣犳妸Date鎹㈡垚String錛涘湪Action涓繘琛岃漿鎹紱褰撶劧杞崲瑕佸熷姪浜嶴impleDateFormate鏂規硶鍠?br />
絎簩涓棶棰橈細璁板緱鍦╢orm涓鍔爀nctype="multipart/form-data" 鍛靛懙
9 闂錛?br />
浠婂ぉ鐢═omcat5.5.12錛屽彂鐜板師鏉ュ緢濂界敤鐨勭郴緇熶笉鑳界敤浜嗭紝鍙嶅嫻嬭瘯鍙戠幇欏甸潰涓笉鑳藉寘鍚?taglib錛屽惁鍒欎細鍑虹幇浠ヤ笅鎻愮ず錛?br />
HTTP Status 500 -type Exception report
Message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file "file:*****/WEB-INF/lib/struts.jar":
鍘熷洜錛?br />
鏇存柊浜嗗伐紼嬬敤鐨刲ib鏂囦歡澶逛笅鐨刯ar錛屽彂甯冩椂涔熷彂甯冧簡servlet.jar鍜宩sp-api.jar銆?br />
瑙e喅錛?br />
鎶妀sp-api.jar鍒犻櫎灝辮В鍐寵繖涓棶棰樹簡銆?/p>
10 闂錛歍omcat5.0.20涓樊閿欏彲浠ラ氳繃[Tomcat瀹夎鐩綍]/logs涓嬬殑localhost_log.2006-07-14.txt綾諱技鐨勬枃浠剁湅鍏蜂綋鐨勯敊璇棩蹇楋紝浣嗘槸鍦?.5涓氨鎵句笉鍒頒簡
鍘熷洜涓庤В鍐籌細
鎴戞妸[Tomcat瀹夎鐩綍]/bin涓嬬殑tomcat5w.exe鐨刲ogging鏍囩鎹i紦浜嗕竴浼氾紝鐒跺悗閲嶈搗灝辨湁浜嗐?br />
鍘熷洜鍏蜂綋璇翠笉鍑嗭紝鐢ㄩ潪瀹夎鐗堜篃鏈夎繖涓棶棰樸?/p>
鏈緇堣В鍐蟲柟妗堬細
http://tomcat.apache.org/tomcat-5.5-doc/logging.html
11 閿欒錛歫avax.servlet.ServletException: Cannot find bean page in any scope
鍘熷洜 1錛氭鏌ョ▼搴忥紝鏈夊彲鑳芥槸jsp涓紡鍒扮殑bean鍦ㄧ▼搴忎腑娌℃湁榪愯鍒幫紝鎵浠ヤ笉瀛樺湪銆?/p>
12 閿欒錛歂o action instance for path /MenuManage could be created
鍘熷洜錛歴turts閰嶇疆闂錛屾壘涓嶅埌Form瀵瑰簲鐨刡ean銆傛鏌sp鏂囦歡鍜宻truts-config.xml鏂囦歡銆?/p>
13 閿欒錛歰rg.hibernate.hql.ast.QuerySyntaxException: address is not mapped. [from address]
鍘熷洜錛氭鏌ュ搴攂ean涓暟鎹簱鍚嶆槸鍚﹀拰hibernate瀹氫箟鐨勭浉鍚岋紝娉ㄦ剰澶у皬鍐欍?/p>
14 閿欒錛歰rg.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter in class: com.xxx.perrsistence.Test, setter method of property: id
鍘熷洜錛氬搴攂ean涓璼et鏂規硶鏁版嵁綾誨瀷鍜宧ibernate閰嶇疆鏂囦歡涓畾涔夌殑綾誨瀷鏄惁涓鑷?/p>
1.Rete 綆楁硶 錛?/span>
Rete 鍦ㄦ媺涓佽涓槸 鈥漬et鈥?/span> 錛屾湁緗戠粶鐨勬剰鎬濄?/span> RETE 綆楁硶鍙互鍒嗕負涓ら儴鍒嗭細瑙勫垯緙栬瘧錛?/span> rule compilation 錛夊拰榪愯鏃舵墽琛岋紙 runtime execution 錛夈?/span>
緙栬瘧綆楁硶鎻忚堪浜嗚鍒欏浣曞湪 Production Memory 涓駭鐢熶竴涓湁鏁堢殑杈ㄥ埆緗戠粶銆傜敤涓涓潪鎶鏈х殑璇嶆潵璇達紝涓涓鯨鍒綉緇滃氨鏄敤鏉ヨ繃婊ゆ暟鎹傛柟娉曟槸閫氳繃鏁版嵁鍦ㄧ綉緇滀腑鐨勪紶鎾潵榪囨護鏁版嵁銆傚湪欏剁鑺傜偣灝嗕細鏈夊緢澶氬尮閰嶇殑鏁版嵁銆傚綋鎴戜滑欏虹潃緗戠粶鍚戜笅璧幫紝鍖歸厤鐨勬暟鎹皢浼氳秺鏉ヨ秺灝戙傚湪緗戠粶鐨勬渶搴曢儴鏄粓绔妭鐐癸紙 terminal nodes 錛夈傚湪 Dr Forgy 鐨?/span> 1982 騫寸殑璁烘枃涓紝浠栨弿榪頒簡 4 縐嶅熀鏈妭鐐癸細 root , 1-input, 2-input and terminal 銆?/span>
鏍硅妭鐐規槸鎵鏈夌殑瀵硅薄榪涘叆緗戠粶鐨勫叆鍙c傜劧鍚庯紝浠庢牴鑺傜偣绔嬪嵆榪涘叆鍒?/span> ObjectTypeNode 銆?/span> ObjectTypeNode 鐨勪綔鐢ㄦ槸浣垮紩鎿庡彧鍋氬畠闇瑕佸仛鐨勪簨鎯呫備緥濡傦紝鎴戜滑鏈変袱涓璞¢泦錛?/span> Account 鍜?/span> Order 銆傚鏋滆鍒欏紩鎿庨渶瑕佸姣忎釜瀵硅薄閮借繘琛屼竴涓懆鏈熺殑璇勪及錛岄偅浼氭氮璐瑰緢澶氱殑鏃墮棿銆備負浜嗘彁楂樻晥鐜囷紝寮曟搸灝嗗彧璁╁尮閰?/span> object type 鐨勫璞¢氳繃鍒拌揪鑺傜偣銆傞氳繃榪欑鏂規硶錛屽鏋滀竴涓簲鐢?/span> assert 涓涓柊鐨?/span> account 錛屽畠涓嶄細灝?/span> Order 瀵硅薄浼犻掑埌鑺傜偣涓傚緢澶氱幇浠?/span> RETE 瀹炵幇閮芥湁涓撻棬鐨?/span> ObjectTypeNode 銆傚湪涓浜涙儏鍐典笅錛?/span> ObjectTypeNode 琚敤鏁e垪娉曡繘涓姝ヤ紭鍖栥?/span>
1-input 鑺傜偣閫氬父琚О涓?/span> AlphaNode 銆?/span> AlphaNodes 琚敤鏉ヨ瘎浼板瓧闈㈡潯浠訛紙 literal conditions 錛夈傝櫧鐒訛紝 1982 騫寸殑璁烘枃鍙彁鍒頒簡鐩哥瓑鏉′歡錛堟寚鐨勫瓧闈笂鐩哥瓑錛夛紝寰堝 RETE 瀹炵幇鏀寔鍏朵粬鐨勬搷浣溿備緥濡傦紝 Account.name = = 鈥淢ark鈥? 鏄竴涓瓧闈㈡潯浠躲傚綋涓鏉¤鍒欏浜庝竴縐?/span> object type 鏈夊鏉$殑瀛楅潰鏉′歡錛岃繖浜涘瓧闈㈡潯浠跺皢琚摼鎺ュ湪涓璧楓傝繖鏄錛屽鏋滀竴涓簲鐢?/span> assert 涓涓?/span> account 瀵硅薄錛屽湪瀹冭兘鍒拌揪涓嬩竴涓?/span> AlphaNode 涔嬪墠錛屽畠蹇呴』鍏堟弧瓚崇涓涓瓧闈㈡潯浠躲傚湪 Dr. Forgy 鐨勮鏂囦腑錛屼粬鐢?/span> IntraElement conditions 鏉ヨ〃榪般備笂涓孌墊彁鍒扮殑 ObjectTypeNode 鏄竴縐嶇壒孌婄殑 AlphaNode 銆?/span>
2-input 鑺傜偣閫氬父琚О涓?/span> BetaNode 銆?/span> BetaNodes 琚敤鏉ュ 2 涓璞¤繘琛屽姣斻傝繖涓や釜瀵硅薄鍙互鏄悓縐嶇被鍨嬶紝涔熷彲浠ユ槸涓嶅悓綾誨瀷銆備竴涓?/span> BetaNode 鐨勫乏杈硅緭鍏ラ氬父鏄?/span> a list of objects 銆傚彸杈硅緭鍏ユ槸 a single object 銆傚湪涓浜涙儏鍐典笅錛屼竴涓鍒欏紩鎿庡彲鑳藉疄鐜頒竴浜?/span> BetaNodes 鏉ュ鐞?/span> existential conditions ( 鈥樹笌鈥欐潯浠?/span> ) 鍜?/span> negated conditional element 錛堚橀潪鈥欐潯浠訛級銆傚緢澶氱幇浠g殑 RETE 瀹炵幇閫氳繃 hash 鎴?/span> b-tree indexes 鏉ヤ紭鍖?/span> BetaNodes 銆?/span>
Terminal nodes 琚敤鏉ヨ〃鏄庝竴鏉¤鍒欏凡緇忓尮閰嶄簡瀹冪殑鎵鏈夋潯浠訛紙 conditions 錛夈傚湪涓浜涙儏鍐典笅錛屼竴鏉″甫鏈夆滄垨鈥濇潯浠剁殑瑙勫垯鍙互鏈夎秴榪囦竴涓殑 terminal node 銆備粠涓涓?/span> RETE 緗戠粶鐨勮鐐規潵鐪嬶紝涓鏉″甫鏈夆滄垨鈥濇潯浠剁殑瑙勫垯瀹為檯涓婂彧鏄?/span> 2 涓嫢鏈夊緢澶氬叡浜妭鐐圭殑鑺傜偣銆?/span>
RETE 綆楁硶鐨勭浜屼釜閮ㄥ垎鏄繍琛屾椂錛?/span> runtime 錛夈傚綋涓涓簲鐢?/span> assert 涓涓璞★紝寮曟搸灝嗘暟鎹紶閫掑埌 root node 銆備粠閭i噷錛屽畠榪涘叆 ObjectTypeNode 騫舵部鐫緗戠粶鍚戜笅浼犳挱銆傚綋鏁版嵁鍖歸厤涓涓妭鐐圭殑鏉′歡錛岃妭鐐瑰氨灝嗗畠璁板綍鍒扮浉搴旂殑鍐呭瓨涓傝繖鏍峰仛鐨勫師鍥犳湁浠ヤ笅鍑犵偣錛氫富瑕佺殑鍘熷洜鏄彲浠ュ甫鏉ユ洿蹇殑鎬ц兘銆傝櫧鐒惰浣忓畬鍏ㄦ垨閮ㄥ垎鍖歸厤鐨勫璞¢渶瑕佸唴瀛橈紝瀹冩彁渚涗簡閫熷害鍜屽彲浼哥緝鎬х殑鐗圭偣銆傚綋涓鏉¤鍒欑殑鎵鏈夋潯浠墮兘婊¤凍錛岃繖灝辨槸瀹屽叏鍖歸厤銆傝屽彧鏈夐儴鍒嗘潯浠舵弧瓚籌紝灝辨槸閮ㄥ垎鍖歸厤銆傦紙鎴戣寰楀紩鎿庡湪姣忎釜鑺傜偣閮芥湁鍏跺搴旂殑鍐呭瓨鏉ュ偍瀛樻弧瓚寵鑺傜偣鏉′歡鐨勫璞★紝榪欏氨閫犳垚浜嗗鏋滀竴涓璞℃槸瀹屽叏鍖歸厤錛岄偅榪欎釜瀵硅薄灝變細鍦ㄦ瘡涓妭鐐圭殑瀵瑰簲鍐呭瓨涓兘瀛樻湁鍏舵槧璞°傦級
<!--[if !supportEmptyParas]-->
2.Leaps
綆楁硶錛?/span>
Production systems 鐨?/span> Leaps 綆楁硶浣跨敤浜嗕竴縐嶁?/span> lazy 鈥濇柟娉曟潵璇勪及鏉′歡錛?/span> conditions 錛夈備竴縐?/span> Leaps 綆楁硶鐨勪慨鏀圭増鏈殑瀹炵幇錛屼綔涓?/span> Drools v3 鐨勪竴閮ㄥ垎錛屽皾璇曠粨鍚?/span> Leaps 鍜?/span> RETE 鏂規硶鐨勬渶濂界殑鐗圭偣鏉ュ鐞?/span> Working Memory 涓殑 facts 銆?/span>
鍙ゅ吀鐨?/span> Leaps 鏂規硶灝嗘墍鏈夌殑 asserted 鐨?/span> facts 錛屾寜鐓у叾琚?/span> asserted 鍦?/span> Working Memory 涓殑欏哄簭錛?/span> FIFO 錛夛紝鏀懼湪涓誨爢鏍堜腑銆傚畠涓涓釜鐨勬鏌?/span> facts 錛岄氳繃榪唬鍖歸厤 data type 鐨?/span> facts 闆嗗悎鏉ユ壘鍑烘瘡涓涓浉鍏寵鍒欑殑鍖歸厤銆傚綋涓涓尮閰嶇殑鏁版嵁琚彂鐜版椂錛岀郴緇熻浣忔鏃剁殑榪唬浣嶇疆浠ュ寰呬細鐨勭戶緇凱浠o紝騫朵笖嬋鍙戣鍒欑粨鏋滐紙 consequence 錛夈傚綋緇撴灉錛?/span> consequence 錛夋墽琛屽畬鎴愪互鍚庯紝緋葷粺灝變細緇х畫澶勭悊澶勪簬涓誨爢鏍堥《閮ㄧ殑 fact 銆傚姝ゅ弽澶嶃?/span>
<!--[if !supportEmptyParas]-->
3.RuleBase:
涓涓?/span> RuleBase 鍖呭惈浜嗗涓皢琚嬌鐢ㄧ殑瑙勫垯鍖咃紙 packages of rules 錛夈傚綋瑙勫垯鏀瑰彉鏃訛紝涓涓?/span> rulebase 灝嗚浜х敓騫朵笖緙撳瓨錛岀洿鍒拌鍒欏啀嬈″彉鍖栥?/span>
涓涓?/span> rulebase instance 鏄嚎紼嬪畨鍏ㄧ殑錛屾墍鏈変綘鍙互鍦ㄤ綘鐨勫簲鐢ㄤ腑錛岃涓涓?/span> rulebase instance 鍦ㄥ涓嚎紼嬩腑鍏變韓銆傚浜庝竴涓?/span> rulebase 鐨勬渶閫氬父鐨勬搷浣滄槸浜х敓涓涓柊鐨?/span> WorkingMemory 銆?/span>
榪欎釜 rulebase 淇濇寔鐫鍒板畠鎵浜х敓鐨?/span> WorkingMemoryd 鐨勫急寮曠敤錛屾墍浠ュ湪闀挎椂闂磋繍琛岀殑 WorkingMemory 涓紝濡傛灉 rules 鍙戠敓鏀瑰彉錛岃繖浜?/span> WorkingMemory 鍙互鍗充嬌鐨勬牴鎹渶鏂扮殑 rules 榪涜鏇存柊錛岃屼笉蹇呴噸鍚?/span> WorkingMemory 銆?/span>
4.WorkingMemory:
WorkingMemory 鍩烘湰涓婂氨鏄凡緇忚澆鍏ユ墍鏈夌殑 rules 錛屽茍涓斿噯澶囧惎鍔ㄧ殑 rule engine 銆傚畠淇濇寔浜嗘墍鏈夎 asserted 榪?/span> WorkingMemory 鐨勬暟鎹殑寮曠敤錛岀洿鍒板彇娑堬紙 retracted 錛夈傚茍涓斿畠鏄笌浣犵殑緋葷粺榪涜浜や簰鐨勫湴鏂廣?/span> WorkingMemory 鏄湁鐘舵佸璞°傚畠浠殑鐢熷懡鍛ㄦ湡鍙暱鍙煭銆傚鏋滀粠涓涓煭鐢熷懡鍛ㄦ湡鐨勮搴︽潵鍚屼竴涓紩鎿庤繘琛屼氦浜掞紝鎰忓懗鐫浣犲彲浠ヤ嬌鐢?/span> RuleBase 瀵硅薄鏉ヤ負姣忎釜 session 浜х敓涓涓柊鐨?/span> WorkingMemory 錛岀劧鍚庡湪緇撴潫 session 鍚?/span> discard 榪欎釜 WorkingMemory 錛堜駭鐢熶竴涓?/span> WorkingMemory 鏄竴涓粔浠風殑鎿嶄綔錛夈傚彟涓縐嶅艦寮忥紝灝辨槸鍦ㄤ竴涓浉褰撻暱鐨勬椂闂翠腑錛堜緥濡備竴涓?/span> conversation 錛夛紝淇濇寔涓涓?/span> WorkingMemory 錛屽茍涓斿浜庢柊鐨?/span> facts 淇濇寔鎸佺畫鐨勬洿鏂般?/span>
Facts 鏄粠浣犵殑搴旂敤涓紝琚?/span> assert 榪?/span> WorkingMemory 涓殑瀵硅薄錛?/span> beans 錛夈?/span> Facts 鏄鍒欏彲浠ヨ闂殑浠繪剰鐨?/span> java 瀵硅薄銆傝鍒欏紩鎿庝腑鐨?/span> facts 騫朵笉鏄?/span> clone 鈥?/span> facts 錛屽畠鍙槸鎸佹湁鍒頒綘鐨勫簲鐢ㄤ腑鏁版嵁鐨勫紩鐢ㄣ?/span>
鈥淎ssertion鈥?/span> 鏄皢 facts 鍛婅瘔 WorkingMemory 鐨勫姩浣滐紝渚嬪 WorkingMemory.assertObject (yourObject) 銆傚綋浣?/span> assert 涓涓?/span> fact 銆傚畠灝嗚媯鏌ユ槸鍚﹀尮閰嶈鍒欍傚綋浣犲畬鎴?/span> assert facts 涔嬪悗錛屼綘榪樿璋冪敤鈥?/span> fireAllRules() 鈥濇柟娉曟潵鍚姩鍖歸厤銆?/span>
錛?/span>
WorkingMemory.assertObject(yourObjcet)
鍙槸榪涜
assertion
鐨勪竴縐?/span>
regular
鏂規硶錛岃繕瀛樺湪鏈変竴縐嶇О涓?/span>
logical assertion
鐨勫姩浣滐級銆?/span>
鍩烘湰涓婂氨鏄?/span> assert 鐨勯嗘搷浣溿傚綋浣?/span> retract 涓涓?/span> fact 錛?/span> WorkingMemory 灝嗕笉鍐嶈窡韙偅涓?/span> fact 銆備換浣曚緷璧栭偅涓?/span> fact 鐨?/span> rules 灝嗕笉琚縺媧匯傛敞鎰忥細瀹屽叏鏈夊彲鑳藉瓨鍦ㄦ煇鏉¤鍒欐槸渚濊禆浜庝竴涓?/span> fact 鐨勨滀笉瀛樺湪鈥濓紙 non existence 錛夈傚湪榪欑鎯呭喌涓嬶紝 retract 涓涓?/span> fact 灝嗗鑷翠竴鏉¤鍒欒嬋媧匯?/span>
瑙勫垯寮曟搸蹇呴』鐭ラ亾浠涔堟椂鍊欎竴涓?/span> fact 琚敼鍙樹簡錛屽洜涓轟緷璧栨 fact 鐨?/span> rule 浼氬洜姝よ岃鍐嶆嬋鍙戙傚綋浣犱慨鏀逛竴涓?/span> fact 鐨勬椂鍊欙紝灝卞憡璇変簡瑙勫垯寮曟搸瀹冪殑鐘舵佸凡緇忔敼鍙樹簡銆?/span>
Globals 鏄竴涓兘澶熻浼犺繘瑙勫垯寮曟搸鐨勫懡鍚嶇殑瀵硅薄銆傚ぇ澶氭暟榪欎簺瀵硅薄琚敤鏉ヤ綔涓洪潤鎬佷俊鎭垨鏈嶅姟銆傝繖浜涙湇鍔¤鐢ㄥ湪涓鏉¤鍒欑殑 RHS 錛屾垨鑰呭彲鑳芥槸浠庤鍒欏紩鎿庤繑鍥炲璞$殑涓縐嶆柟娉曘?/span>
濡傛灉浣犵殑 fact 瀵硅薄鏄?/span> java bean 錛屼綘鍙互涓哄畠浠疄鐜頒竴涓?/span> property change listener 錛岀劧鍚庢妸瀹冮珮鏁拌鍒欏紩鎿庛傝繖鎰忓懗鐫錛屽綋涓涓?/span> fact 鏀瑰彉鏃訛紝瑙勫垯寮曟搸灝嗕細鑷姩鐭ラ亾錛屽茍榪涜鍝嶅簲鐨勫姩浣溿?/span> Proxy libraries 灝嗕細甯姪瀹炵幇榪欎竴鍒囥?/span>
鍩轟簬 RETE 綆楁硶鐨勮鍒欏紩鎿庢槸鏈夌姸鎬佺殑瑙勫垯寮曟搸銆傛湁鐘舵佸甫鏉ョ殑濂藉鏄敼鍙樿兘澶熻閫氱煡鍜岀瘡璁?/span> facts 錛?/span> accumulating facts 錛夈?/span>
灝界濡傛錛屽湪寰堝鎯呭喌涓嬶紝鎵鏈夋彁渚涚粰瑙勫垯寮曟搸鐨勭殑 facts 閮芥槸鏈鏂扮殑錛岀揣鎺ョ潃瑙勫垯琚縺媧匯傚湪榪欑鎯呭喌涓嬩粎浠呴渶瑕佷竴縐嶆棤鐘舵佺殑妯″紡銆?/span>
JSR-94 API 鎸囧畾浜嗘湁鐘舵佸拰鏃犵姸鎬佺殑妯″紡錛屼絾鏄湪 native API 涓殑絳変環鐗╀粎浠呮槸鍒涘緩涓涓柊鐨?/span> WorkingMemory 瀹炰緥錛岀劧鍚庡綋 session 緇撴潫鏃跺垹闄ゅ畠銆?/span>
<!--[if !supportEmptyParas]-->聽
5. Agenda:
Agenda 鏄?/span> RETE 鐨勪竴涓壒鐐廣傚畠鏄唴瀛樹腑鐨勪竴涓尯鍩燂紝鍦ㄨ鍒欏拰鍖歸厤鐨?/span> facts 琚縺鍙戜箣鍓嶏紝瀹冧滑琚繚瀛樺湪榪欓噷錛岀О涓衡?/span> activations 鈥濄?/span>
寮曟搸宸ヤ綔鍦ㄤ竴涓?/span> 2 闃舵鈥濇ā寮忎笅錛?/span>
<!--[if !supportLists]--> 1錛?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">聽 <!--[endif]--> WorkingMemory actions 錛?/span>assert鏂扮殑facts錛屼慨鏀瑰瓨鍦ㄧ殑facts鍜?/span>retract facts閮芥槸WorkingMemory actions銆傝繖浜涘姩浣滀粠涓鏉¤鍒欑殑RHS鎴栨槸java code涓瑙﹀彂銆?/span>
<!--[if !supportLists]--> 2錛?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">聽 <!--[endif]--> Agenda evaluation錛?/span>rule actions鍦ㄨ繖閲岃嬋鍙戯級銆?/span>
娉ㄦ剰錛氳繖涓繃紼嬫槸涓涓疆嫻佸彂鐢熺殑榪囩▼錛屼竴鏉¤鍒欑殑嬋鍙戝彲鑳藉紩璧?/span> WorkingMemory actions 鐨勫彂鐢熴傚綋 WorkingMemory actions 鍙戠敓鏃訛紝搴旇娌℃湁瑙勫垯姝e湪琚縺鍙戙?/span>
fireAllRules() 鏂規硶寮曡搗 Agenda evaluation 錛屾渶緇堚?/span> activations 鈥濇縺鍙戙傝繖涓繃紼嬩竴鐩撮噸澶嶇洿鍒?/span> Agenda 琚竻絀猴紝姝ゆ椂鎺у埗鏉冨氨鍥炲埌搴旂敤紼嬪簭涓?/span>
褰撴湁澶氭潯 rules 鍦?/span> agenda 涓紝灝遍渶瑕佽В鍐沖啿紿併傚綋嬋鍙戜竴鏉¤鍒欐椂錛屼細瀵?/span> WorkingMemory 浜х敓鍓綔鐢ㄣ傝鍒欏紩鎿庨渶瑕佺煡閬撹鍒欒浠ヤ粈涔堥『搴忔潵嬋鍙戯紙渚嬪錛屾縺鍙?/span> rule A 鍙兘浼氬紩璧?/span> rule B 琚粠 agenda 涓Щ闄ゃ傦級
Drools 閲囧彇鐨勫啿紿佽В鍐崇瓥鐣ユ湁 4 縐嶏紝鎸夌収浼樺厛綰ф帓鍒楀涓嬶細 Salience 錛?/span> FIFO 錛堝厛榪涘厛鍑猴級錛?/span> Total Recency 鍜?/span> Load order 銆?/span>
浼樺厛綰ф渶楂橈紝涔熸槸鏈鏄撴噦鐨勭瓥鐣ユ槸鈥?/span> Salience 鈥濓紝鍗充紭鍏堢駭錛?/span> user 鍙互涓烘煇涓?/span> rule 鎸囧畾涓涓珮涓鐐圭殑浼樺厛綰э紙閫氳繃闄勭粰瀹冧竴涓瘮杈冨ぇ鐨勬暟瀛楋級銆傞珮 Salience 鐨?/span> rule 灝嗕細琚紭鍏堟縺鍙戙?/span>
浼樺厛綰ф渶浣庣殑絳栫暐鏄?/span> Load order 錛屽氨鏄寜鐓?/span> rule 琚0鏄庣殑欏哄簭銆?/span>
Agenda Groups 鏄垝鍒?/span> Agenda 涓?/span> rules 錛堝叾瀹炴槸鈥?/span> activations 鈥濓級鐨勪竴縐嶆柟娉曘傚湪浠繪剰涓涓椂鍒伙紝鍙湁涓涓?/span> group 鎷ユ湁鈥?/span> focus 鈥濓紝榪欐剰鍛崇潃鍙湁鍦ㄩ偅涓?/span> group 涓殑 activations for rules 鎵嶆槸鏈夋晥鐨勩?/span>
Filter 鏄?/span> filter 鎺ュ彛鐨勫彲閫夊疄鐜幫紝鐢ㄦ潵鍏佽鎴栫姝竴涓?/span> activation 鑳藉琚縺鍙戙?/span>
Rules
涓鏉¤鍒欐槸瀵瑰晢涓氱煡璇嗙殑緙栫爜銆備竴鏉¤鍒欐湁 attributes 錛屼竴涓?/span> Left Hand Side 錛?/span> LHS 錛夊拰涓涓?/span> Right Hand Side 錛?/span> RHS 錛夈?/span> Drools 鍏佽涓嬪垪鍑犵 attributes 錛?/span> salience 錛?/span> agenda-group 錛?/span> no-loop 錛?/span> auto-focus 錛?/span> duration 錛?/font> activation-group 銆?/span>
瑙勫垯鍙互閫氳繃 package 鍏抽敭瀛楀悓涓涓懡鍚嶇┖闂達紙 namespace 錛夌浉鍏寵仈錛涘叾浠栫殑瑙勫垯寮曟搸鍙兘縐版涓鴻鍒欓泦錛?/span> Rule Set 錛夈備竴涓?/span> package 澹版槑浜?/span> imports 錛?/span> global 鍙橀噺錛?/span> functions 鍜?/span> rules 銆?/span>
瀵規柊鐨勬暟鎹拰琚慨鏀圭殑鏁版嵁榪涜瑙勫垯鐨勫尮閰嶇О涓烘ā寮忓尮閰嶏紙 Pattern Matching 錛夈傝繘琛屽尮閰嶇殑寮曟搸縐頒負鎺ㄧ悊鏈猴紙 Inference Engine 錛夈傝璁塊棶鐨勮鍒欑О涓?/span> ProductionMemory 錛岃鎺ㄧ悊鏈鴻繘琛屽尮閰嶇殑鏁版嵁縐頒負 WorkingMemory 銆?/span> Agenda 綆$悊琚尮閰嶈鍒欑殑鎵ц銆傛帹鐞嗘満鎵閲囩敤鐨勬ā寮忓尮閰嶇畻娉曟湁涓嬪垪鍑犵錛?/span> Linear 錛?/span> RETE 錛?/span> Treat 錛?/span> Leaps 銆?/span>
Drools 閲囩敤浜?/span> RETE 鍜?/span> Leaps 鐨勫疄鐜般?/span> Drools 鐨?/span> RETE 瀹炵幇琚О涓?/span> ReteOO 錛岃〃紺?/span> Drools 瀵?/span> Rete 綆楁硶榪涜浜嗗姞寮哄拰浼樺寲鐨勫疄鐜般?/span>
涓鏉¤鍒欑殑 LHS 鐢?/span> Conditional Element 鍜屽煙綰︽潫錛?/span> Field Constraints 錛夈備笅闈㈢殑渚嬪瓙鏄劇ず浜嗗涓涓?/span> Cheese Fact 浣跨敤浜嗗瓧闈㈠煙綰︽潫錛?/span> Literal Field Constraint 錛?/span>
涓婇潰鐨勮繖涓緥瀛愮被浼間簬錛?/span>
瑙勫垯寮曟搸瀹炵幇浜嗘暟鎹悓閫昏緫鐨勫畬鍏ㄨВ鑰︺傝鍒欏茍涓嶈兘琚洿鎺ヨ皟鐢紝鍥犱負瀹冧滑涓嶆槸鏂規硶鎴栧嚱鏁幫紝瑙勫垯鐨勬縺鍙戞槸瀵?/span> WorkingMemory 涓暟鎹彉鍖栫殑鍝嶅簲銆傜粨鏋滐紙 Consequence 錛屽嵆 RHS 錛変綔涓?/span> LHS events 瀹屽叏鍖歸厤鐨?/span> Listener 銆?/span>
褰?/span> rules 琚姞鍏?/span> Productioin Memory 鍚庯紝 rules 琚鍒欏紩鎿庣敤 RETE 綆楁硶鍒嗚В鎴愪竴涓浘錛?/span>
褰?/span> Facts 琚?/span> assert 榪涘叆 WorkingMemory 涓悗錛岃鍒欏紩鎿庢壘鍒板尮閰嶇殑 ObjectTypeNode 錛岀劧鍚庡皢姝?/span> Fact 浼犳挱鍒頒笅涓涓妭鐐廣?/span> ObjectTypeNode 鎷ユ湁涓鍧楀唴瀛樻潵淇濆瓨鎵鏈夊尮閰嶇殑 facts 銆傚湪鎴戜滑鐨勪緥瀛愪腑錛屼笅涓涓妭鐐規槸涓涓煙綰︽潫錛?/span> Field Constraint 錛夛紝 type = = 鈥渃heddar鈥?/span> 銆傚鏋滄煇涓?/span> Cheese 瀵硅薄鐨勭被鍨嬩笉鏄?/span> cheddar 鈥濓紝榪欎釜 fact 灝嗕笉浼氳浼犳挱鍒扮綉緇滅殑涓嬩竴涓妭鐐廣傚鏋滄槸鈥?/span> cheddar 鈥濈被鍨嬶紝瀹冨皢琚褰曞埌 AlphaNode 鐨勫唴瀛樹腑錛屽茍浼犳挱鍒扮綉緇滅殑涓嬩竴涓妭鐐廣?/span> AlphaNode 鏄彜鍏?/span> RETE 鏈錛屽畠鏄竴涓崟杈撳叆 / 鍗曡緭鍑虹殑鑺傜偣銆傛渶鍚庨氳繃 AlphaNode 鐨?/span> fact 琚紶鎾埌 Terminal Node 銆?/span> Terminal Node 鏄渶緇堣妭鐐癸紝鍒版鎴戜滑璇磋繖鏉¤鍒欒瀹屽叏鍖歸厤錛屽茍鍑嗗嬋鍙戙?/span>
褰撲竴鏉¤鍒欒瀹屽叏鍖歸厤錛屽畠騫舵病鏈夌珛鍒昏嬋鍙戯紙鍦?/span> RETE 涓槸榪欐牱錛屼絾鍦?/span> Leaps 涓畠浼氱珛鍒昏嬋鍙戯級銆傝繖鏉¤鍒欏拰涓庡叾鍖歸厤鐨?/span> facts 灝嗘縺媧昏鏀懼叆 Agenda 錛岀敱 Agenda 鏉ヨ礋璐e畨鎺掓縺鍙?/span> Activations 錛堟寚鐨勬槸 rule + the matched facts 錛夈?/span>
涓嬮潰鐨勫浘寰堟竻妤氱殑璇存槑浜?/span> Drools 瑙勫垯寮曟搸鐨勬墽琛岃繃紼嬶細
鏁版嵁琚?/span> assert 榪?/span> WorkingMemory 鍚庯紝鍜?/span> RuleBase 涓殑 rule 榪涜鍖歸厤錛堢‘鍒囩殑璇村簲璇ユ槸 rule 鐨?/span> LHS 錛夛紝濡傛灉鍖歸厤鎴愬姛榪欐潯 rule 榪炲悓鍜屽畠鍖歸厤鐨勬暟鎹紙姝ゆ椂灝卞彨鍋?/span> Activation 錛変竴璧瘋鏀懼叆 Agenda 錛岀瓑寰?/span> Agenda 鏉ヨ礋璐e畨鎺掓縺鍙?/span> Activation 錛堝叾瀹炲氨鏄墽琛?/span> rule 鐨?/span> RHS 錛夛紝涓婂浘涓殑鑿卞艦閮ㄥ垎灝辨槸鍦?/span> Agenda 涓潵鎵ц鐨勶紝 Agenda 灝變細鏍規嵁鍐茬獊瑙e喅絳栫暐鏉ュ畨鎺?/span> Activation 鐨勬墽琛岄『搴忋?/span>