锘??xml version="1.0" encoding="utf-8" standalone="yes"?>4480yy私人影院亚洲,久久久亚洲欧洲日产国码农村,亚洲综合无码一区二区痴汉 http://www.tkk7.com/human2008/zh-cnMon, 12 May 2025 16:19:21 GMTMon, 12 May 2025 16:19:21 GMT60MyEclipse浣跨敤鎶宸?/title><link>http://www.tkk7.com/human2008/archive/2008/02/18/180537.html</link><dc:creator>鐏?</dc:creator><author>鐏?</author><pubDate>Mon, 18 Feb 2008 13:09:00 GMT</pubDate><guid>http://www.tkk7.com/human2008/archive/2008/02/18/180537.html</guid><wfw:comment>http://www.tkk7.com/human2008/comments/180537.html</wfw:comment><comments>http://www.tkk7.com/human2008/archive/2008/02/18/180537.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/human2008/comments/commentRss/180537.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/human2008/services/trackbacks/180537.html</trackback:ping><description><![CDATA[<p>紼嬪簭浠g爜鑷姩鎺掔増錛欳trl+Shift+F錛屼細鑷姩鎶婁唬鐮佽繘琛屾牸寮忓寲鐨勬帓鐗堬紝闈炲父鏂逛究<br /> 蹇熸墽琛岀▼搴忥細Ctrl + F11絎竴嬈℃墽琛屾椂錛屽畠浼氳闂偍鎵ц妯″紡錛岃緗ソ鍚庯紝浠ュ悗鍙鎸夎繖涓儹閿紝瀹冨氨浼氬揩閫熸墽琛屻?/p> <p>Ctrl+Shift+/ 鍔犱笂孌墊敞閲?**/</p> <p>Ctrl+Shift+\ 鍙栨秷孌墊敞閲?**/</p> <p>Ctrl+/ 鍔犱笂琛屾敞閲婃垨鍙栨秷琛屾敞閲?/p> <p>鑷姩姹囧叆鎵闇瑕佺殑綾誨埆錛欳trl+Shift+O</p> <p>鍙栨秷鑷姩validation錛?br /> 鍙栨秷鏂規硶錛?nbsp;windows-->perferences-->myeclipse-->validation <br /> 闄ゅ紑Manual涓嬮潰鐨勫閫夋鍏ㄩ儴閫変腑涔嬪錛屽叾浠栧叏閮ㄤ笉閫?nbsp;<br /> 鎵嬪伐楠岃瘉鏂規硶錛?nbsp;<br /> 鍦ㄨ楠岃瘉鐨勬枃浠朵笂錛屽崟鍑婚紶鏍囧彸閿?->myeclipse-->run validation </p> <p>鎸塶ew Remote Site,Name濉?<strong>svn</strong> , URL濉?a >http://subclipse.tigris.org/update</a>,涓鐩磏ext鍒癴inished涓烘</p> <img src ="http://www.tkk7.com/human2008/aggbug/180537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/human2008/" target="_blank">鐏?</a> 2008-02-18 21:09 <a href="http://www.tkk7.com/human2008/archive/2008/02/18/180537.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍑犱釜鎻愰珮浠g爜璐ㄩ噺,媯鏌ヤ唬鐮佽鑼冪殑宸ュ叿 http://www.tkk7.com/human2008/archive/2008/01/11/174509.html鐏?鐏?Fri, 11 Jan 2008 01:48:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174509.htmlhttp://www.tkk7.com/human2008/comments/174509.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174509.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174509.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174509.html1.FindBugs:鏌ラ敊
 鐩墠鐗堟湰0.9.1,鏈塮or eclipse鐨勬彃浠? 緗戝潃鏄?a >http://findbugs.sourceforge.net.
 
 宸ヤ綔鍘熺悊:媯鏌ョ▼搴忕敓鎴愮殑class鐨勫伐鍏?
 
 鐣岄潰:鐙珛榪愯鐨勬彁渚涘浘褰㈢晫闈?寰堝弸濂?鏈塨ug鎶ュ憡.
 
 鍙敤鎬?澶у鏁版彁紺烘湁鐢?鍊煎緱鏀?br />  
 鎻掍歡:
  鍙互璁劇疆鍩烘湰鍜屾鏌ョ殑閿欒綾誨埆.
  鎻掍歡淇濆瓨璁劇疆鏈夐棶棰?鎴戞槸鍏抽棴欏圭洰鍚庡彴淇敼浜嗛厤緗枃浠?鍦ㄨ鍏ユ墠鎴愬姛鏀逛簡閰嶇疆鐨?
  bug涓存椂瑙e喅: 浣跨敤鐙珛鐨刦indbugs璁劇疆瑙勫垯,鐒跺悗鍒癈:\Documents and Settings\XXX\涓嬫壘.Findbugs_prefs,鐒跺悗鏀瑰悕瑕嗙洊eclipse project涓嬬殑.fbprefs (鍏堝叧闂綘鐨刾roject)
 
 閰嶇疆娌℃湁鏌ユ壘鍔熻兘,涓嶈繃緙╁啓鑳借鎴戜滑寰堝揩鎵懼埌鏌愪釜瑙勫垯
 
2.PMD:涓昏鏄煡閿?/strong>
 鐩墠鐗堟湰3.2,鏈塮or eclipse浠ュ強鍏朵粬ide鐨勬彃浠?緗戝潃鏄?a >http://pmd.sourceforge.net
 宸ヤ綔鍘熺悊:媯鏌ユ簮鐮?
 鍙敤鎬?涓閮ㄥ垎鍊煎緱淇敼,鏈変簺榪囦簬涓ユ牸
 鐣岄潰:鐙珛榪愯鐨勬槸鍛戒護琛岀晫闈?鍛戒護姣旇緝綆鍗?
 鎻掍歡:鍙互閰嶇疆瑙勫垯,鏈変竴涓嫭绔嬬殑紿楀彛鏄劇ず鎻愮ず,鍒?綰ф彁紺?寰堝弸濂?br />  
 浣跨敤:寤虹珛鑷繁鐨勮鑼?鐒跺悗鐢ㄤ簬瀹為檯浣跨敤涓?
 
3.CheckStyle:涓昏鏌ヤ唬鐮佽鑼?/strong>
 鐩墠鐗堟湰4.0 beta 5,鏈塮or eclipse鐨勬彃浠?緗戝潃鏄?a >http://checkstyle.sourceforge.net.
 宸ヤ綔鍘熺悊:媯鏌ユ簮鐮?瀵筳avadoc,涔﹀啓鏍煎紡絳夎繘琛屾鏌?
 瑙勫垯瀹氫箟:榛樿鐨勮鍒欐槸sun鐨勭紪鐮佽鑼?涓嶈繃鎸夌収sun鐨勮鍒欏垯榪囦簬涓ユ牸,鑰屼笖姣忎釜鍏徃涔熸湁鑷繁鐨勮鑼?鍜宻un鐨勪笉鍚?鎵浠ラ渶瑕佽嚜瀹氫箟瑙勮寖. 

4.JTest 閲嶉噺綰х殑鍟嗕笟宸ュ叿
 鐩墠鐗堟湰7.0.7,鏈塮or eclipse鐨勬彃浠?緗戝潃鏄?a >http://www.parasoft.com/
 
 涓嶆帹鑽愪嬌鐢?涓嶈繃鍔熻兘寮哄ぇ,鍙互榪涜浠g爜媯鏌?鍙互鑷姩鐢熸垚鍗曞厓嫻嬭瘯鍜岃繘琛屽崟鍏冩祴璇?(涓嶈繃灝辨槸澶參浜?鑰屼笖鐢熸垚鐨勫崟鍏冩祴璇曟病澶ぇ鐢ㄩ?
 
 
 

浣跨敤鎰熻:

 瀹夎涓婃彃浠跺悗,瀵硅嚜宸辯殑欏圭洰榪涜媯鏌?鍙戠幇璀﹀憡澶浜?鏈夌偣鍙戣挋鐨勬劅瑙?涓嶈繃鎶婅鍛婄湅涓閬?瑙夊緱閮藉緢鏈夐亾鐞?鏈変簺涔熺‘瀹炴槸涓浜涢敊璇?
 褰撶劧PMD鍜孋heckStyle鐨勮鑼冨お涓ユ牸,鏈鍚庤繕鏄厤緗簡涓涓?
 
 閫氳繃鏀規璀﹀憡,鎰熻榪樻槸涓嶉敊,鑷沖皯鍙互璇磋嚜宸辯殑浠g爜鍙互閫氳繃宸ュ叿鐨勬嫻嬩簡.
 
 褰撶劧鍩虹浠g爜鍜岄」鐩唬鐮佽繕鏄笉涓鏍風殑,鍩虹浠g爜寰寰姣旇緝澶嶆潅,鎵浠ュ拰鏅氶」鐩唬鐮佺殑瑙勮寖搴旇鏈夋墍涓嶅悓.鏈変簺瑙勫垯鍙兘鐢ㄥ湪鏅氫唬鐮佷笂,鐢ㄥ湪鍩虹綾諱唬鐮佷笂寰寰娌℃硶澶勭悊.
 
鍏朵粬

浠g爜鏌ラ敊鎺ㄨ崘浣跨敤Findbugs鍜孭MD,浠g爜涔﹀啓瑙勮寖鎺ㄨ崘浣跨敤CheckStyle榪涜媯鏌?榪欐牱涓嶄粎鑳芥煡鍑轟竴浜涘熀鏈殑閿欒,涔熻兘鎻愰珮欏圭洰鐨勪唬鐮佽川閲?瀵規彁楂樿嚜宸辯殑浠g爜姘村鉤涔熸槸闈炲父濂?

鎺ㄨ崘欏圭洰緇勫緩绔嬬粺涓鐨勮鍒?浠g爜澶嶆煡鐨勬椂鍊欏氨浣跨敤榪欎簺宸ュ叿,鐪佹椂鐪佸姏.

瀹炰箖灞呭鏃呰,鏉浜鴻秺璐у繀澶囦箣宸ュ叿涔?(鍥犱負鑲畾鏈変漢瑕侀獋浣?鍛靛懙,涔熸槸浣犳壘"宸?鐨勫伐鍏?



鐏? 2008-01-11 09:48 鍙戣〃璇勮
]]>
浣跨敤Lucene榪涜鍏ㄦ枃媯绱?涓)---澶勭悊绱㈠紩 http://www.tkk7.com/human2008/archive/2008/01/11/174507.html鐏?鐏?Fri, 11 Jan 2008 01:47:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174507.htmlhttp://www.tkk7.com/human2008/comments/174507.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174507.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174507.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174507.htmlhttp://lucene.apache.org.鐩稿叧鐨勪竴涓」鐩槸杞︿笢鐨刉ebLucene: http://sourceforge.net/projects/weblucene.

 棣栧厛,鍩轟簬涓涓畝鍗曠殑鏂伴椈緋葷粺,瑕佹兂鍋氬叏鏂囨绱?鏂伴椈緋葷粺鐨勭鐞嗙瓑鍦ㄨ繖閲屼笉鍦ㄥ叿浣撴彁鍑?涓嬮潰鍒楀嚭鏂伴椈瀵硅薄鐨勭被:
 
 娉?紼嬪簭鐢ㄤ細鍒頒竴浜涘伐鍏風被,涓嶅湪姝ゅ垪鍑?鐢ㄦ埛鍙互鑷繁瀹炵幇.
 
 

  package com.jscud.website.newsinfo.bean;
  
  
  import java.sql.Timestamp;
  
  import com.jscud.util.DateTime;
  import com.jscud.util.StringFunc;
  import com.jscud.website.newsinfo.NewsConst;
  
  
  /**
   * 涓涓柊闂?
   *
   * @author scud(椋炰簯灝忎緺) http://www.jscud.com
   * 
   */
  public class NewsItem
  {
  
      private int nid; //鏂伴椈緙栧彿
  
      private int cid; //綾誨埆緙栧彿
  
      private String title;//鏍囬
  
      private int showtype; //鍐呭綾誨瀷:鐩墠鏀寔url鍜宧tml
  
      private String content;//鍐呭
  
      private String url;//瀵瑰簲緗戝潃,濡傛灉鍐呭綾誨瀷鏄痷rl鐨勮瘽
  
      private Timestamp addtime; //澧炲姞鏃墮棿
  
      private int click; //鐐瑰嚮鏁?br />      
      //瀵瑰簲鐨刧et,set鍑芥暟,杈冨涓嶅湪鍒楀嚭,鍙互浣跨敤宸ュ叿鐢熸垚
      //......
  
     
      /**
       * 鎸夌収綾誨瀷鏍煎紡鍖?br />        */
      public String getShowContent()
      {
          String sRes = content;
          if(showtype == NewsConst.ShowType_HTML)
          {
          }  
          return sRes;
      }
     
      public String getTarget()
      {
          if(showtype == NewsConst.ShowType_URL)
          {
              return "_blank";
          }
          else
              return "";       
      }
     
      /**
       * 闈欐丠tml鏂囦歡鐨勮礬寰勫強鍏跺悕瀛?br />        */
      public String getHtmlFileName()
      {
          int nYear = DateTime.getYear_Date(getAddtime());
          int nMonth =  DateTime.getMonth_Date(getAddtime());
             
          String sGeneFileName =
             "/news/" + getCid() + "/" + nYear + "/" + nMonth +"/" + getNid() + ".htm";
         
          return sGeneFileName;
      }
     
      /**
       * 闈欐丠tml鏂囦歡鐨勮礬寰?br />        */
      public String getHtmlFilePath()
      {
          int nYear = DateTime.getYear_Date(getAddtime());
          int nMonth =  DateTime.getMonth_Date(getAddtime());
             
          String sGeneFilePath =
             getCid() + "_" + nYear + "_" + nMonth;
         
          return sGeneFilePath;
      }     
  } 


 
 鍙互鐪嬪埌,鎴戜滑闇瑕佸鏍囬鍜屽唴瀹硅繘琛屾绱?涓轟簡榪欎釜鐩殑,鎴戜滑棣栧厛闇瑕佹潵鐮旂┒涓涓媗ucene.
 
 鍦↙ucene涓?濡傛灉瑕佽繘琛屽叏鏂囨绱?蹇呴』瑕佸厛寤虹珛绱㈠紩鐒跺悗鎵嶈兘榪涜媯绱?褰撶劧瀹為檯宸ヤ綔涓繕浼氭湁鍒犻櫎绱㈠紩鍜屾洿鏂扮儲寮曠殑宸ヤ綔.
 
 鍦ㄦ涔嬪墠,浠嬬粛涓涓渶鍩烘湰鐨勭被(鎽樻妱鑷?a href="http://www.tkk7.com/cap/archive/2005/07/17/7849.html">http://www.tkk7.com/cap/archive/2005/07/17/7849.html):
 
 Analyzer 鏂囦歡鐨勫垎鏋愬櫒錛堝惉璧鋒潵鍒壄錛岃繕鏄彨Analyzer濂戒簡)鐨勬娊璞★紝榪欎釜綾葷敤鏉ュ鐞嗗垎璇?瀵逛腑鏂囧挨鍏墮噸瑕侊紝杞崲澶у皬鍐?Computer->computer,瀹炵幇鏌ヨ澶у皬鍐欐棤鍏?錛岃漿鎹㈣瘝鏍?computers->computer),娑堥櫎stop words絳?榪樿礋璐f妸鍏朵粬鏍煎紡鏂囨。杞崲涓虹函鏂囨湰絳?
 
 鍦╨ucene涓?涓鑸細浣跨敤StandardAnalyzer鏉ュ垎鏋愬唴瀹?瀹冩敮鎸佷腑鏂囩瓑澶氬瓧鑺傝璦,褰撶劧鍙互鑷繁瀹炵幇鐗規畩鐨勮В鏋愬櫒.StandardAnalyzer鐩墠瀵逛腑鏂囩殑澶勭悊鏄寜鐓у崟瀛楁潵澶勭悊鐨?榪欐槸鏈綆鍗曠殑鍔炴硶,浣嗘槸涔熸湁緙虹偣,浼氱粍鍚堝嚭涓浜涙病鏈夋剰涔夌殑緇撴灉鏉? 
 
 
 棣栧厛鎴戜滑鏉ヤ簡瑙e緩绔嬬儲寮?寤虹珛绱㈠紩鍖呭惈2縐嶆儏鍐?涓縐嶆槸緇欎竴鏉℃柊闂誨緩绔嬬儲寮?鍙﹀鐨勬儏鍐墊槸鍦ㄥ紑濮嬫垨鑰呬竴瀹氱殑鏃墮棿緇欐壒閲忕殑鏂伴椈寤虹珛绱㈠紩,鎵浠ヤ負浜嗛氱敤,鎴戜滑鍐欎竴涓氱敤鐨勫緩绔嬬儲寮曠殑鍑芥暟:
 
 (涓鑸竴綾葷殑绱㈠紩閮芥斁鍦ㄤ竴涓洰褰曚笅,榪欎釜閰嶇疆鍙互鍦ㄥ嚱鏁頒腑瀹氫箟,涔熷彲浠ュ啓鍦ㄩ厤緗枃浠朵腑,閫氳繃鍙傛暟浼犻掔粰鍑芥暟.)

    /**
     * 鐢熸垚绱㈠紩.
     *
     * @param doc 鐩爣鏂囨。
     * @param indexDir 绱㈠紩鐩綍
     */
    public static void makeIndex(Document doc, String indexDir)
    {
        List aList = new ArrayList();
        aList.add(doc);
        makeIndex(aList, indexDir);
    }
 
    /**
     * 鐢熸垚绱㈠紩.
     *
     * @param doc 鐢熸垚鐨刣ocument.
     * @param indexDir 绱㈠紩鐩綍
     */
    public static void makeIndex(List docs, String indexDir)
    {
        if (null == docs)
        {
            return;
        }       
        boolean indexExist = indexExist(indexDir);

        IndexWriter writer = null;
        try
        {
            StandardAnalyzer analyzer = new StandardAnalyzer();
           
            //濡傛灉绱㈠紩瀛樺湪,灝辮拷鍔?濡傛灉涓嶅瓨鍦?灝卞緩绔嬫柊鐨勭儲寮?lucene瑕佹槸鑷姩鍒ゅ喅灝卞ソ浜?
            if(indexExist)
            {
                writer = new IndexWriter(indexDir, analyzer, false);
            }
            else
            {
                writer = new IndexWriter(indexDir, analyzer, true);
            }

            //娣誨姞涓鏉℃枃妗?br />             for (int i = 0; i < docs.size(); i++)
            {
                Document doc = (Document) docs.get(i);
                if (null != doc)
                {
                    writer.addDocument(doc);
                }
            }

            //绱㈠紩瀹屾垚鍚庣殑澶勭悊
            writer.optimize();
        }
        catch (IOException e)
        {
            LogMan.warn("Error in Make Index", e);
        }
        finally
        {
            try
            {
                if (null != writer)
                {
                    writer.close();
                }
            }
            catch (IOException e)
            {
                LogMan.warn("Close writer Error");
            }
        }
    }



 鍙互鐪嬪埌,寤虹珛绱㈠紩鐢ㄥ埌綾繪槸IndexWrite,瀹冨彲浠ユ柊寤虹儲寮曟垨鑰呰拷鍔犵儲寮?浣嗘槸闇瑕佽嚜宸卞垽鏂?鍒ゆ柇鏄氳繃IndexReader榪欎釜綾繪潵瀹炵幇鐨?鍑芥暟濡備笅:

 

  /**
     * 媯鏌ョ儲寮曟槸鍚﹀瓨鍦?
     * @param indexDir
     * @return
     */
    public static boolean indexExist(String indexDir)
    {
        return IndexReader.indexExists(indexDir);
    }
 


 濡傛灉姣忔閮芥槸鏂板緩绱㈠紩鐨勮瘽,浼氭妸鍘熸潵鐨勮褰曞垹闄?鎴戝湪浣跨敤鐨勬椂鍊欎竴寮濮嬪氨娌℃湁娉ㄦ剰鍒?鍚庢潵瑙傚療浜嗕竴涓嬬儲寮曟枃浠?鎵嶅彂鐜拌繖涓棶棰?
 
 
 榪樺彲浠ョ湅鍒?寤虹珛绱㈠紩鏄粰鐢ㄦ埛鐨凞ocument瀵硅薄寤虹珛绱㈠紩,Document琛ㄧず绱㈠紩涓殑涓鏉℃枃妗h褰?閭d箞鎴戜滑濡備綍寤虹珛涓涓枃妗i偅?浠ユ柊闂葷郴緇熶負渚?浠g爜濡備笅:
 

     /**
      * 鐢熸垚鏂伴椈鐨凞ocument.
      *
      * @param aNews 涓鏉℃柊闂?
      *
      * @return lucene鐨勬枃妗e璞?br />       */
     public static Document makeNewsSearchDocument(NewsItem aNews)
     {
         Document doc = new Document();
 
         doc.add(Field.Keyword("nid", String.valueOf(aNews.getNid())));
 
         doc.add(Field.Text("title", aNews.getTitle()));
        
         //瀵笻tml榪涜瑙f瀽,濡傛灉涓嶆槸html,鍒欎笉闇瑕佽В鏋?鎴栬呮牴鎹牸寮忚皟鐢ㄨ嚜宸辯殑瑙f瀽鏂規硶
         String content = parseHtmlContent(aNews.getContent());
 
         doc.add(Field.UnStored("content", content));
 
         doc.add(Field.Keyword("addtime", aNews.getAddtime()));
 
         //鍙互鍔犲叆鍏朵粬鐨勫唴瀹?渚嬪鏂伴椈鐨勮瘎璁虹瓑
         doc.add(Field.UnStored("other", ""));
 
         //璁塊棶url
         String newsUrl = "/srun/news/viewhtml/" + aNews.getHtmlFilePath() + "/" + aNews.getNid()
                         + ".htm";
 
         doc.add(Field.UnIndexed("visiturl", newsUrl));
 
         return doc;
     }


 
 閫氳繃涓婇潰鐨勪唬鐮?鎴戜滑鎶婁竴鏉℃柊闂昏漿鎹負lucene鐨凞ocument瀵硅薄,浠庤岃繘琛岀儲寮曞伐浣?鍦ㄤ笂闈㈢殑浠g爜涓?鎴戜滑鍙堝紩鍏ヤ簡lucene涓殑Field(瀛楁)綾?Document鏂囨。灝卞儚鏁版嵁搴撲腑鐨勪竴鏉¤褰?瀹冩湁寰堝瀛楁,姣忎釜瀛楁鏄竴涓狥ield瀵硅薄.
 
 浠庡埆鐨勬枃绔犳憳鎶勪竴孌靛叧浜嶧ield鐨勮鏄?鎽樻妱鑷?a href="http://www.tkk7.com/cap/archive/2005/07/17/7849.html">http://www.tkk7.com/cap/archive/2005/07/17/7849.html):
 [quote]
    綾誨瀷                               Analyzed Indexed Stored 璇存槑
    Field.Keyword(String,String/Date)  N Y Y                    榪欎釜Field鐢ㄦ潵鍌ㄥ瓨浼氱洿鎺ョ敤鏉ユ绱㈢殑姣斿(緙栧彿,濮撳悕,鏃ユ湡絳?
    Field.UnIndexed(String,String)     N N Y                    涓嶄細鐢ㄦ潵媯绱㈢殑淇℃伅,浣嗘槸媯绱㈠悗闇瑕佹樉紺虹殑,姣斿,紜歡搴忓垪鍙?鏂囨。鐨剈rl鍦板潃
    Field.UnStored(String,String)      Y Y N                    澶ф鏂囨湰鍐呭,浼氱敤鏉ユ绱?浣嗘槸媯绱㈠悗涓嶉渶瑕佷粠index涓彇鍐呭,鍙互鏍規嵁url鍘籰oad鐪熷疄鐨勫唴瀹?
    Field.Text(String,String)          Y Y Y                    媯绱?鑾峰彇閮介渶瑕佺殑鍐呭,鐩存帴鏀緄ndex涓?涓嶈繃榪欐牱浼氬澶ndex
    Field.Text(String,Reader)          Y Y N                    濡傛灉鏄竴涓猂eader, lucene鐚滄祴鍐呭姣旇緝澶?浼氶噰鐢║nstored鐨勭瓥鐣?
 [/quote]
 
 鎴戜滑鍙互鐪嬪埌鏂伴椈鐨勭紪鍙鋒槸鐩存帴鐢ㄦ潵媯绱㈢殑,鎵浠ユ槸Keyword綾誨瀷鐨勫瓧孌?鏂伴椈鐨勬爣棰樻槸闇瑕佹绱㈠拰鏄劇ず鐢ㄧ殑,鎵浠ユ槸Text綾誨瀷,鑰屾柊闂葷殑鍐呭鍥犱負鏄疕tml鏍煎紡鐨?鎵浠ュ湪緇忚繃瑙f瀽鍣ㄧ殑澶勭悊鐢?浣跨敤鐨刄nStored鐨勬牸寮?鑰屾柊闂葷殑鏃墮棿鏄洿鎺ョ敤鏉ユ绱㈢殑,鎵浠ユ槸KeyWord綾誨瀷.涓轟簡鍦ㄦ柊闂葷儲寮曞悗鐢ㄦ埛鍙互璁塊棶鍒板畬鏁寸殑鏂伴椈欏甸潰,榪樿緗簡涓涓猆nIndexed綾誨瀷鐨勮闂湴鍧瀛楁.
 
 (瀵笻tml榪涜瑙f瀽鐨勫鐞嗙◢鍚庡湪榪涜璁茶В)
 
 涓轟竴鏉℃柊闂誨緩绔嬬儲寮曢渶瑕佷袱涓楠?鑾峰彇Document,浼犵粰makeIndex鍑芥暟,浠g爜濡備笅:

    public static void makeNewsInfoIndex(NewsItem aNews)
    {
        if (null == aNews)
        {
            return;
        }
        makeIndex(makeNewsSearchDocument(aNews),indexDir);
    }  


 

 
 
 寤虹珛绱㈠紩鐨勫伐浣滃氨榪涜瀹屼簡,鍙鍦ㄥ鍔犳柊闂誨悗璋冪敤 makeNewsInfoIndex(newsitem); 灝卞彲浠ュ緩绔嬬儲寮曚簡.
 
 濡傛灉闇瑕佸垹闄ゆ柊闂?閭d箞涔熻鍒犻櫎瀵瑰簲鐨勭儲寮?鍒犻櫎绱㈠紩鏄氳繃IndexReader綾繪潵瀹屾垚鐨?
 


    /**
     * 鍒犻櫎绱㈠紩.
     * @param aTerm 绱㈠紩鍒犻櫎鏉′歡
     * @param indexDir 绱㈠紩鐩綍
     */
    public static void deleteIndex(Term aTerm, String indexDir)
    {
        List aList = new ArrayList();
        aList.add(aTerm);
        deleteIndex(aList, indexDir);
    }

    /**
     * 鍒犻櫎绱㈠紩.
     *
     * @param aTerm 绱㈠紩鍒犻櫎鏉′歡.
     * @param indexDir 绱㈠紩鐩綍
     * 
     */
    public static void deleteIndex(List terms, String indexDir)
    {
        if (null == terms)
        {
            return;
        }
       
        if(!indexExist(indexDir)) { return; }

        IndexReader reader = null;
        try
        {
            reader = IndexReader.open(indexDir);
            for (int i = 0; i < terms.size(); i++)
            {
                Term aTerm = (Term) terms.get(i);
                if (null != aTerm)
                {
                    reader.delete(aTerm);
                }
            }
        }
        catch (IOException e)
        {
            LogMan.warn("Error in Delete Index", e);
        }
        finally
        {
            try
            {
                if (null != reader)
                {
                    reader.close();
                }
            }
            catch (IOException e)
            {
                LogMan.warn("Close reader Error");
            }
        }
    } 


 
 鍒犻櫎绱㈠紩闇瑕佷竴涓潯浠?綾諱技鏁版嵁搴撲腑鐨勫瓧孌墊潯浠?渚嬪鍒犻櫎涓鏉℃柊闂葷殑浠g爜濡備笅:
 

     public static void deleteNewsInfoIndex(int nid)
     {
         Term aTerm = new Term("nid", String.valueOf(nid));
         deleteIndex(aTerm,indexDir);
     }   




 閫氳繃鏂伴椈鐨処D,灝卞彲浠ュ垹闄や竴鏉℃柊闂?
 
 濡傛灉闇瑕佹洿鏂版柊闂?濡備綍鏇存柊绱㈠紩鍝? 鏇存柊绱㈠紩闇瑕佸厛鍒犻櫎绱㈠紩鐒跺悗鏂板緩绱㈠紩2涓楠?鍏跺疄灝辨槸鎶婁笂闈㈢殑浠g爜緇勫悎璧鋒潵,渚嬪鏇存柊涓鏉℃柊闂?

     public static void updateNewsInfoIndex(NewsItem aNews)
     {
         if (null == aNews)
         {
             return;
         }
         deleteNewsInfoIndex(aNews.getNid());
         makeNewsInfoIndex(aNews);
     } 
 



 
 鑷蟲,绱㈠紩鐨勫緩绔嬫洿鏂板拰鍒犻櫎灝卞憡涓孌佃惤浜?鍏朵腑鎵歸噺鏇存柊鏂伴椈鐨勪唬鐮佸涓?
 (鎵歸噺鏇存柊搴旇鍦ㄨ闂漢鏁板皯鎴栬呭悗鍙扮▼搴忓湪澶滈棿鎵ц)

    public static void makeAllNewsInfoIndex(List newsList)
    {
        List terms = new ArrayList();
        List docs = new ArrayList();

        for (int i = 0; i < newsList.size(); i++)
        {
            NewsItem aitem = (NewsItem) newsList.get(i);
            if (null != aitem)
            {
                terms.add(new Term("nid", String.valueOf(aitem.getNid())));
                docs.add(makeNewsSearchDocument(aitem));
            }
        }

        deleteIndex(terms,indexDir);
        makeIndex(docs,indexDir);
    } 



鐏? 2008-01-11 09:47 鍙戣〃璇勮
]]>
鍒嗘瀽/瑙f瀽Html欏甸潰:HTML Parser鐨勮瘯鐢?http://www.tkk7.com/human2008/archive/2008/01/11/174505.html鐏?鐏?Fri, 11 Jan 2008 01:45:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174505.htmlhttp://www.tkk7.com/human2008/comments/174505.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174505.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174505.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174505.html鏈榪戝湪鐮旂┒lucene鐨勫叏鏂囨绱?鍦ㄥ緢澶氬湴鏂歸渶瑕佽В鏋愭垨鑰呰鍒嗘瀽Html鍐呭鎴栬匟tml欏甸潰,Lucene鏈韓鐨勬紨紺虹▼搴忎腑涔熸彁渚涗簡涓涓狧tml Parser,浣嗘槸涓嶆槸綰疛ava鐨勮В鍐蟲柟妗?浜庢槸鍒板鎼滅儲,鍦ㄧ綉涓婃壘鍒頒簡涓涓?HTMLParser".

緗戝潃鏄? http://htmlparser.sourceforge.net ,褰撳墠鐗堟湰涓?.5.

涓嬭澆涓嬫潵,璇曠敤涓鐣?鎰熻涓嶉敊,瀹屽叏鑳芥弧瓚砽ucene瑙f瀽Html鐨勯渶姹?

榪囧嚑澶╄創鍑簂ucene榪涜鍏ㄦ枃媯绱㈢殑浠g爜.(媯绱㈡湰绔欑殑鏂囩珷絳?.

璇曠敤浠g爜濡備笅,渚涘ぇ瀹跺弬鑰?

package com.jscud.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.nodes.TextNode;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;
import org.htmlparser.visitors.TextExtractingVisitor;

import com.jscud.util.LogMan; //涓涓棩蹇楄褰曠被

/**
 * 婕旂ず浜咹tml Parse鐨勫簲鐢?
 *
 * @author scud http://www.jscud.com
 */

public class ParseHtmlTest
{

    public static void main(String[] args) throws Exception
    {
        String aFile = "e:/jscud/temp/test.htm";

        String content = readTextFile(aFile, "GBK");

        test1(content);
        System.out.println("====================================");

        test2(content);
        System.out.println("====================================");

        test3(content);
        System.out.println("====================================");

        test4(content);
        System.out.println("====================================");

        test5(aFile);
        System.out.println("====================================");

        //璁塊棶澶栭儴璧勬簮,鐩稿鎱?br />         test5("         System.out.println("====================================");

    }

    /**
     * 璇誨彇鏂囦歡鐨勬柟寮忔潵鍒嗘瀽鍐呭.
     * filePath涔熷彲浠ユ槸涓涓猆rl.
     *
     * @param resource 鏂囦歡/Url
     */
    public static void test5(String resource) throws Exception
    {
        Parser myParser = new Parser(resource);

        //璁劇疆緙栫爜
        myParser.setEncoding("GBK");

        HtmlPage visitor = new HtmlPage(myParser);

        myParser.visitAllNodesWith(visitor);

        String textInPage = visitor.getTitle();

        System.out.println(textInPage);
    }

    /**
     * 鎸夐〉闈㈡柟寮忓鐞?瀵逛竴涓爣鍑嗙殑Html欏甸潰,鎺ㄨ崘浣跨敤姝ょ鏂瑰紡.
     */
    public static void test4(String content) throws Exception
    {
        Parser myParser;
        myParser = Parser.createParser(content, "GBK");

        HtmlPage visitor = new HtmlPage(myParser);

        myParser.visitAllNodesWith(visitor);

        String textInPage = visitor.getTitle();

        System.out.println(textInPage);
    }

    /**
     * 鍒╃敤Visitor妯″紡瑙f瀽html欏甸潰.
     *
     * 灝忎紭鐐?緲昏瘧浜?lt;>絳夌鍙?
     * 緙虹偣:濂藉絀烘牸,鏃犳硶鎻愬彇link
     *  
     */
    public static void test3(String content) throws Exception
    {
        Parser myParser;
        myParser = Parser.createParser(content, "GBK");

        TextExtractingVisitor visitor = new TextExtractingVisitor();

        myParser.visitAllNodesWith(visitor);

        String textInPage = visitor.getExtractedText();

        System.out.println(textInPage);
    }

    /**
     * 寰楀埌鏅氭枃鏈拰閾炬帴鐨勫唴瀹?
     *
     * 浣跨敤浜嗚繃婊ゆ潯浠?
     */
    public static void test2(String content) throws ParserException
    {
        Parser myParser;
        NodeList nodeList = null;

        myParser = Parser.createParser(content, "GBK");

        NodeFilter textFilter = new NodeClassFilter(TextNode.class);
        NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);

        //鏆傛椂涓嶅鐞?meta
        //NodeFilter metaFilter = new NodeClassFilter(MetaTag.class);

        OrFilter lastFilter = new OrFilter();
        lastFilter.setPredicates(new NodeFilter[] { textFilter, linkFilter });

        nodeList = myParser.parse(lastFilter);

        Node[] nodes = nodeList.toNodeArray();

        for (int i = 0; i < nodes.length; i++)
        {
            Node anode = (Node) nodes[i];

            String line = "";
            if (anode instanceof TextNode)
            {
                TextNode textnode = (TextNode) anode;
                //line = textnode.toPlainTextString().trim();
                line = textnode.getText();
            }
            else if (anode instanceof LinkTag)
            {
                LinkTag linknode = (LinkTag) anode;

                line = linknode.getLink();
               
//@todo 榪囨護jsp鏍囩:鍙互鑷繁瀹炵幇榪欎釜鍑芥暟
                //line = StringFunc.replace(line, "<%.*%>", "");
            }

            if (isTrimEmpty(line))
                continue;

            System.out.println(line);
        }
    }

    /**
     * 瑙f瀽鏅氭枃鏈妭鐐?
     *
     * @param content
     * @throws ParserException
     */
    public static void test1(String content) throws ParserException
    {
        Parser myParser;
        Node[] nodes = null;

        myParser = Parser.createParser(content, null);

        nodes = myParser.extractAllNodesThatAre(TextNode.class); //exception could be thrown here

        for (int i = 0; i < nodes.length; i++)
        {
            TextNode textnode = (TextNode) nodes[i];
            String line = textnode.toPlainTextString().trim();
            if (line.equals(""))
                continue;
            System.out.println(line);
        }

    }

    /**
     * 璇誨彇涓涓枃浠跺埌瀛楃涓查噷.
     *
     * @param sFileName  鏂囦歡鍚?br />      * @param sEncode   String
     * @return 鏂囦歡鍐呭
     */
    public static String readTextFile(String sFileName, String sEncode)
    {
        StringBuffer sbStr = new StringBuffer();

        try
        {
            File ff = new File(sFileName);
            InputStreamReader read = new InputStreamReader(new FileInputStream(ff),
                    sEncode);
            BufferedReader ins = new BufferedReader(read);

            String dataLine = "";
            while (null != (dataLine = ins.readLine()))
            {
                sbStr.append(dataLine);
                sbStr.append("\r\n");
            }

            ins.close();
        }
        catch (Exception e)
        {
            LogMan.error("read Text File Error", e);
        }

        return sbStr.toString();
    }

    /**
     * 鍘繪帀宸﹀彸絀烘牸鍚庡瓧絎︿覆鏄惁涓虹┖
     * @param astr String
     * @return boolean
     */
    public static boolean isTrimEmpty(String astr)
    {
        if ((null == astr) || (astr.length() == 0))
        {
            return true;
        }
        if (isBlank(astr.trim()))
        {
            return true;
        }
        return false;
    }

    /**
     * 瀛楃涓叉槸鍚︿負絀?null鎴栬呴暱搴︿負0.
     * @param astr 婧愬瓧絎︿覆.
     * @return boolean
     */
    public static boolean isBlank(String astr)
    {
        if ((null == astr) || (astr.length() == 0))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

}

 




鐏? 2008-01-11 09:45 鍙戣〃璇勮
]]>
JavaEE浜嬪姟鎵洸絎旇涔嬩竴鎵壂鍒板熬 http://www.tkk7.com/human2008/archive/2008/01/11/174503.html鐏?鐏?Fri, 11 Jan 2008 01:44:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174503.htmlhttp://www.tkk7.com/human2008/comments/174503.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174503.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174503.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174503.html1.璧勬枡

2.鏈湴浜嬪姟涓庡垎甯冨紡浜嬪姟

  • 鏈湴浜嬪姟
    瀹屽叏渚濊禆浜嶥B銆丣MS鑷韓錛岋紝濡傜洿鎺ヨ皟鐢╦dbc涓殑conn.commit();榪欓噷娌″簲鐢ㄦ湇鍔″櫒浠涔堜簨錛屾墍浠ヤ篃涓嶆敮鎸佸鏁版嵁婧愮殑鍏ㄥ眬浜嬪姟銆?
  • 鍒嗗竷寮忎簨鍔?/strong>
    鍦↗avaEE涓栫晫鐨勪簨鍔″湪JTA銆丣TS瑙勮寖鍜孹A Sources涔嬩笂瀹炵幇銆?br /> JTA鏄敤鎴風紪紼嬫帴鍙o紝JTS鏄湇鍔″櫒搴曞眰鏈嶅姟錛屼袱鑰呬竴鑸敱搴旂敤鏈嶅姟鍣ㄨ嚜甯﹀疄鐜幫紝鑰?span class="nobr">atomikos 銆?span class="nobr">JOTM 鍜?span class="nobr">JBoss Transaction 鏄笓闂ㄦ悶灞鎶㈢敓鎰忕殑銆?br /> XA Sources鍏跺疄鍏堜簬JavaEE鑰屽瓨鍦紝JDBC driver蹇呴』鏈塲avax.sql.XADataSource鎺ュ彛鐨勫疄鐜扮被錛屽惁鍒欐墍璋撲簩闃舵鎻愪氦灝辨槸涓吉鑳藉姏銆?br /> JavaEE闄や簡鏀寔JDBC鍜孞MS澶栵紝榪樺紩鍏ヤ簡JCA妯″瀷銆侸CA鍙互璇存槸鐩墠鍞竴鍙Щ妞嶇殑鎻掑叆JavaEE浜嬪姟鐨勮祫婧愭ā鍨嬶紝鍥犳鍍廕DO榪欑被妗嗘灦/Server灝辨槸闈犱箹涔栧嚭鑷繁鐨凧CA榪炴帴鍣ㄦ潵鍙備笌JavaEE浜嬪姟鐨勩?/li>

3.緙栫▼寮忔ā鍨?/h2>

    鎵嬪伐璋冪敤jdbc鐨刢onnection浜嬪姟鏂規硶鍜屼嬌鐢↗TA鎺ュ彛閮藉睘浜庣紪紼嬪紡寮鍙戯紝鍦‥JB涓彨BMT(Bean綆$悊浜嬪姟)銆?br />     JTA鏈閲嶈鐨勬帴鍙e氨鏄疷serTransaction鍜屽畠鐨勫叚涓柟娉?begin錛宑ommit錛宺ollback錛実etStatus錛宻etRollbackonly錛宻etTransactionTimeout銆?br />     紼嬪簭闇瑕乁serTransaction鏃跺彲浠ヤ粠JNDI棰嗗彇錛屼笉榪嘕NDI鍚嶉殢搴旂敤鏈嶅姟鍣ㄤ笉鍚岃屼笉鍚屻侲JB3閲屽彲浠ョ洿鎺ョ敤涓狜Resource娉ㄥ叆銆?/p>

4.瀹e憡寮忔ā鍨?/h2>

    鍓嶉潰閮芥槸閾哄灚錛岃繖涓墠鏄富鎵撶殑浜嬪姟妯″瀷錛屽EJB鐨凜MT(瀹瑰櫒綆$悊浜嬪姟)鍜孲prin銆?/p>

    鍏朵腑EJB2.0錛孲pring1.0鍦ㄩ儴緗叉弿榪扮鍜宎pplicationContext.xml涓畾涔夛紝鑰孍JB3.0鍜孲pring2.0鍒欓噰鐢╝nnotation銆?/p>

4.1 浜嬪姟綾誨瀷

     榪欓噷JavaEE涓嶴pring鐨勫畾涔夊熀鏈浉鍚岋細

  • Required錛氬鏋淐ontext涓湁浜嬪姟灝卞姞鍏ワ紝娌℃湁灝辮嚜宸卞垱寤轟竴涓?鏈甯哥敤璁劇疆)
  • Mandatory錛氭案榪滃姞鍏ヤ竴涓簨鍔°傚鏋滃綋鍓岰ontext娌℃湁浜嬪姟錛屾姏鍑哄紓甯搞?閭d簺涓嶆墦綆楄嚜宸辮礋璐ollback浜嬪姟鐨勬柟娉曪紝蹇呴』鍔犲叆鍒板埆浜虹殑浜嬪姟錛岀敱鍒漢鏉ユ帶鍒秗ollback)
  • RequiresNew錛氭案榪滄柊寤轟竴涓簨鍔°?閭d簺涓嶇鍒漢濡備綍錛岃嚜宸卞繀欏繪彁浜や簨鍔$殑鏂規硶錛屾瘮濡傚璁′俊鎭槸涓瀹氳鍐欑殑)
  • Supports錛氬鏋滄湁浜嬪姟灝卞姞鍏ワ紝濡傛灉娌℃湁灝辯畻浜嗐傛案榪滀笉浼氬垱寤烘柊浜嬪姟銆?涓鑸敤浜庡彧璇繪柟娉曪紝涓嶄細涓誨姩鍒涘緩浜嬪姟錛屼絾濡傛灉褰撳墠鏈変簨鍔″氨鍔犲叆錛屼互璇誨埌浜嬪姟涓湭鎻愪氦鐨勬暟鎹?
  • NotSupported錛氭案榪滀笉浣跨敤浜嬪姟錛屽鏋滃綋鍓嶆湁浜嬪姟錛屾寕璧蜂簨鍔°?閭d簺鏈夊彲鑳芥姏寮傚父浣嗗紓甯稿茍涓嶅獎鍝嶅叏灞鐨勬柟娉?
  • Never錛氫笉鑳藉湪鏈夊綋鍓嶄簨鍔$殑鎯呭喌涓嬭皟鐢ㄦ湰鏂規硶銆傦紙鐢熶漢鍕胯繎?)

      鍙錛孯equired鏄粯璁ょ殑璁劇疆錛孲upports鏄彧璇繪柟娉曠殑鏈浣抽夋嫨銆?/p>

4.2 浜嬪姟闅旂綰у埆

  • ReadUncommited錛氭湰浜嬪姟鍙互鐪嬪埌鍙︿竴浜嬪姟鏈彁浜ょ殑鏁版嵁銆傝剰璇匯?
  • ReadCommited錛氭湰浜嬪姟鍙彲浠ョ湅鍒板彟涓浜嬪姟宸叉彁浜ょ殑鏁版嵁銆備笉鍙噸澶嶈銆?
  • RepeatableRead錛氬彲閲嶅璇匯傚湪涓涓簨鍔″唴錛岀涓嬈¤鍒扮殑鏁版嵁錛屽湪鏈簨鍔℃病鏈夋彁浜ゅ墠錛屾棤璁哄彟涓涓簨鍔″浣曟彁浜ゆ暟鎹紝鏈簨鍔¤鍒扮殑鏁版嵁閮芥槸涓嶅彉鐨勩?
  • Serializable錛氫覆琛屽寲錛屽悓鏃跺彧鏈変竴涓簨鍔¤兘璇葷浉鍚岀殑鏁版嵁銆?/li>

    綰у埆瓚婁綆瓚婂畨鍏ㄦ晥鐜囦篃瓚婁綆銆傞殧紱葷駭鍒渶瑕佺浉鍏寵祫婧愭敮鎸侊紝濡傞噸澶嶈鍦∣racle閲屼細闄嶇駭涓篟eadCommited銆係pring閲岄粯璁ょ殑Default綰у埆瀹屽叏鐪嬫暟鎹簮鐨勮劯鑹茶浜嬨?/p>

4.3 鍏充簬Rollback

    EJB閲岋紝鎯硆ollback鍙兘sessionContext.setRollbackOnly()錛屾垨鑰呮姏鍑篍JBException銆?EJB3榪樺彲浠nnotation璁劇疆鏌愪簺鑷畾涔塃xception鍙互瑙﹀彂rollback)

    鍦⊿pring閲岋紝鍚屾牱鍙細rollback unchecked exception(RuntimeExcption鍙婂瓙綾?錛岃宑hecked exception(Exception鍙婂瓙綾?鏄笉浼歳ollback鐨勶紝闄ら潪浣犵壒鍒0鏄庛?/p>

   @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW,rollbackFor = {MyException1.class,MyException2.class})

    鍥犳鎵鏈夊湪service灞傛柟娉曚腑鐢╰hrows瀹氫箟鐨凟xception錛岄兘蹇呴』鍦ㄤ簨鍔″畾涔変腑榪涜rollback璁懼畾銆?璇峰嬁鍠勫繕)

    鎵鏈夊湪service灞傛柟娉曚腑c琚玜tch澶勭悊浜嗙殑寮傚父錛屽張甯屾湜瀹瑰櫒杈呭姪rollback鐨勮瘽錛屽繀欏婚噸鎶涗竴涓瀹氫箟鐨凴untimeException鐨勫瓙綾匯?璇峰嬁鍥炴湜)

4.4 鍏充簬Spring

    Spring涓嶅笇鏈涚紪紼嬪紡浜嬪姟綆$悊銆?br />     Spring涔熶笉甯屾湜浣跨敤EJB CMT--CMT渚濊禆浜嶦JB鑰屾棤娉曠敤浜嶱OJO錛屼緷璧栦簬JTA鍏ㄥ眬浜嬪姟瀵瑰崟鏁版嵁婧愬満鏅犳垚浜嗘氮璐癸紝鑰屼笖rollback鏈哄埗姣旇緝楹葷儲錛堝繀欏諱負EJBException鎴栨墜宸etRollbackOnly())銆?br />     鍥犳Spring閫氳繃AOP瀹炵幇浜嗗POJO鐨勬暣濂楀鍛婂紡浜嬪姟浣撶郴錛涘jdbc,hibernate,jpa,jms絳塴ocal鏁版嵁婧愬拰JTA瀹炵幇浜嗙粺涓鐨勪簨鍔$鐞嗘満鍒訛紝鑰屼笖鏀寔鏈湴璧勬簮涓嶫TA鍦ㄩ厤緗枃浠剁駭鐨勫垏鎹紝鑰屼笖鏀硅繘浜唕ollback鏈哄埗銆?/p>

   1錛変竴涓湰鍦頒簨鍔$鐞嗗櫒錛?/p>

<bean id="transactionManager"  class="org.springframework.orm.jpa.JpaTransactionManager">  <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean>

   2錛塖pring灝變細鎶婅姹傞兘杞彂鍒板簲鐢ㄦ湇鍔″櫒鐨凧TA瀵硅薄涓婏紙娉ㄦ剰姝ゆ椂鏁版嵁婧愪篃闇瑕佹敼涓虹敤JNDI浠庡簲鐢ㄦ湇鍔″櫒鑾峰彇)銆?/p>

<bean id="myTxManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>

   3錛夊簲鐢ㄦ湇鍔″櫒涓撴湁鐨勭被鍨嬬殑JTA浜嬪姟綆$悊鍣細

<bean id="myTxManager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager"/>



鐏? 2008-01-11 09:44 鍙戣〃璇勮
]]>
鍖呰浣犵殑Session錛屼嬌Session瀵硅薄鍖?http://www.tkk7.com/human2008/archive/2008/01/11/174498.html鐏?鐏?Fri, 11 Jan 2008 01:36:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174498.htmlhttp://www.tkk7.com/human2008/comments/174498.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174498.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174498.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174498.html
 int userAge = (int)this.Session["UserAge"];
    
    鎴戜滑鐭ラ亾錛孲ession涓瓨鏀劇殑鏄敭鍊煎錛岄敭鏄痵tring綾誨瀷鐨勶紝濡傛灉鎴戜滑涓涓嶅皬蹇冩妸涓婇潰鐨勮鍙ュ啓鎴愯繖鏍鳳細
  int userAge = (int)this.Session["UseAge"];
    緙栬瘧鏈熶笉浼氬彂鐜拌繖涓敊璇紝浣嗚繍琛屾椂涓瀹氫細鎶涘嚭寮傚父錛岃繖鏄湪紼嬪簭涓洿鎺ユ搷浣淪ession鍙兘寮曞彂鐨勯棶棰樹箣涓銆傚彟澶栵紝姣忔鑾峰彇userAge鐨勬椂鍊欓兘瑕佸啓浠g爜榪涜寮哄埗杞崲錛屾劅瑙夊緢綣佺悙銆傛垜浠渶瑕佷竴涓В鍐蟲柟妗堟潵瑙e喅榪欎簺闂銆傛垜鐨勫仛娉曟槸寮曞叆涓涓猄ession鐨勫寘瑁咃紝浣夸箣瀵硅薄鍖栥佸己綾誨瀷鍖栥傚氨鍍忔帴涓嬫潵鐨勪緥瀛愪竴鏍鳳細
public class SessionHelper
{
    
private HttpSessionState curSession;

    
public SessionHelper(HttpSessionState session)
    {
        
this.curSession = session;
    }

    
public static SessionHelper CreateInstance(HttpSessionState session)
    {        
        
return new SessionHelper(session);
    }


    
public string UserID
    {
        
get
        {
            
return this.curSession["UserID"].ToString();
        }
        
set
        {
            
this.curSession["UserID"= value ;
        }
    }

    
public int UserAge
    {
        
get
        {
            
return (int)this.curSession["UserAge"];
        }
        
set
        {
            
this.curSession["UserAge"= value ;
        }
    }

    
//鏌愮敤鎴蜂笂浼犵殑鎵鏈夊浘鐗?/span>
    public ArrayList PicList
    {
        
get
        {
            
if (this.curSession["PicList"== null)
            {
                
this.curSession["PicList"= new ArrayList();
            }

            
return (ArraayList)this.curSession["PicList"];
        }       
    }

    
//娓呯┖鍥劇墖鍒楄〃
    public void ClearAllPics()
    {
        
this.PicList.Clear();
    }  
}

    榪欐牱錛屾垜浠敤璧鋒潵灝遍潪甯告柟渚夸簡錛?br />
       SessionHelper sessionHelper = SessionHelper.CreateInstance(this.Session);
        ArrayList picList 
= sessionHelper.PicList;
        
//    澶勭悊picList涓殑鍥劇墖
        sessionHelper.ClearAllPics();  

    寮曞叆榪欎竴灞傚寘瑁咃紝鍙互浣挎垜浠殑紼嬪簭鐨勫彲璇繪с佸彲緇存姢鎬ф洿濂斤紝鑰屼笖灝嗗師鏉ョ殑涓浜涜繍琛屾湡鐨勯敊璇彁鍓嶅埌浜嗙紪璇戞湡錛岃繖涔熸槸寮虹被鍨嬪甫鏉ョ殑濂藉銆?br />

鐏? 2008-01-11 09:36 鍙戣〃璇勮
]]>
Java 錛嶏紞 鍦‥clipse涓婁嬌鐢℉ibernate http://www.tkk7.com/human2008/archive/2008/01/11/174496.html鐏?鐏?Fri, 11 Jan 2008 01:34:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174496.htmlhttp://www.tkk7.com/human2008/comments/174496.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174496.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174496.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174496.html
 錛?錛変笅杞紿ibernate錛屽茍鍚戦」鐩腑瀵煎叆Hibernate銆?br />      Project->Properies->Java Build Path->Libraries->Add External JARs...錛岄夋嫨Hibernate鏍圭洰褰曚笅鐨刪ibernate3.jar錛屾坊鍔犲埌欏圭洰涓?br />     鎺ョ潃錛岃灝咹ibernate涓嬬殑lib鏂囦歡澶逛笅鐨勬墍鏈夋枃浠墮兘浣滀負涓涓猆ser Library娣誨姞鍒伴」鐩腑錛屽惁鍒欙紝濡傛灉浠呬粎娣誨姞hibernate3.jar錛岀紪璇戝彲浠ラ氳繃錛岃繍琛屽嵈浼氭姏鍑篊lassNotDef鐨勫紓甯革紝鍥犱負hibernate3.jar渚濊禆浜嶩ibernate涓嬬殑lib鏂囦歡澶逛笅鐨勬枃浠躲?br />
 2錛夋垜浠殑搴旂敤鐨勫悗鍙版暟鎹簱浣跨敤鐨勬槸Oracle錛屾墍浠ラ鍏堣鍦ㄤ緥瀛愰」鐩腑寮曞叆鍚湁Oracle jdbc driver鐨勫寘錛宑lasses12.jar銆傝jar鏂囦歡浣嶄簬oracle瀹夎鐩綍鐨刯dbc\lib鐩綍涓嬨?br />     鍦‥clipse涓紝Project->Properies->Java Build Path->Libraries->Add External JARs...錛岄夋嫨classes12.jar錛屽皢鍏舵坊鍔犲埌欏圭洰涓?br />     
錛?錛夌敓鎴恏ibernate.cfg.xml鏂囦歡銆?br />     閫氬父Hibernate鐨勯厤緗枃浠跺拰.hbm.xml鏂囦歡閮藉彲浠ヨ嚜鍔ㄧ敓鎴愶紝榪欑鑷姩鐢熸垚鐨勫伐鍏峰緢澶氾紝鎴戜嬌鐢ㄧ殑鏄疕ibernateSynchronizer錛屽畠鍙互浣滀負涓涓彃浠舵坊鍔犲埌Eclipse涓傚綋HibernateSynchronizer鎻掍歡姝g‘鍔犺澆鍚庯紝鎴戜滑鍙互鍚戝綋鍓嶉」鐩腑娣誨姞Hibernate閰嶇疆鏂囦歡錛欶ile->New->Other->Hibernate->Hibernate Configuration File錛屽嚭鐜板涓嬬晫闈細


  娉ㄦ剰錛孌river Class瑕侀夋嫨閽堝Oracle鐨刼racle.jdbc.driver.OracleDriver錛岃屼笖Database URL鐨勬牸寮忎篃瑕佹紜紝濡傦細
jdbc:oracle:thin:@10.8.8.221:1521:ORCL

    鏈濂藉皢hibernate.cfg.xml鏂囦歡瀛樻斁浜庨」鐩殑鏍圭洰褰曚笅銆?br />
 4錛夌敓鎴?hbm.xml鏂囦歡銆侳ile->New->Other->Hibernate->Hibernate Mapping File錛屽嚭鐜板涓嬬晫闈細

     
    鍦ㄥ~鍐欏畬Password鍚庯紝鐐瑰嚮Refresh鎸夐挳錛屽氨浼氬湪Tables涓垪鍑烘墍鏈夊彲浠ヨ闂殑鏁版嵁搴撹〃錛岀劧鍚庨変腑瑕佷負鍏剁敓鎴?hbm.xml鏂囦歡鐨勮〃錛岀偣鍑籉inish錛屽嵆浼氱敓鎴愬搴旂殑.hbm.xml鏂囦歡錛屾瘮濡傛垜涓婇潰閫夋嫨鐨勬槸Mobileuser琛紝灝變細鐢熸垚Mobileuser.hbm.xml鏂囦歡銆?br />
錛?錛変粠.hbm.xml鏂囦歡鑷姩鐢熸垚瀹炰綋綾匯?br />     鍦≒ackage Explorer涓変腑Mobileuser.hbm.xml鏂囦歡錛屽彸閿?>Hibernate Synchronizer->Synchronize Files 錛屽嵆鍙敓鎴愬搴旂殑瀹炰綋綾誨拰DAO綾匯傚鏋滀綘浠呬粎鎯寵瀹炰綋綾伙紝閭d箞鍙互鍦≒roject->Properies->Hibernate Synchronizer->Data Access Objects 錛屽皢“I would like to have DAOs created for me”鐨勯挬閫夐」鍘繪帀鍗沖彲銆?br />
錛?錛夊湪hibernate.cfg.xml鏂囦歡涓坊鍔犲搴旂殑mapping resource銆?br />     鍦≒ackage Explorer涓変腑Mobileuser.hbm.xml鏂囦歡錛屽彸閿?>Hibernate Synchronizer->Add Mapping Reference錛屽嵆浼氬湪
hibernate.cfg.xml涓嚜鍔ㄧ敓鎴愬涓嬮厤緗細

<mapping resource="HibernateTest/Mobileuser.hbm.xml" />

錛?錛変慨鏀硅嚜鍔ㄧ敓鎴愮殑hibernate.cfg.xml鏂囦歡銆傞渶瑕佸湪hibernate.cfg.xml鏂囦歡鐨勯閮ㄦ坊鍔狅細

<!DOCTYPE hibernate-configuration PUBLIC
        
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    姣旇緝綣佺悙鐨勬槸錛屾瘡嬈¤嚜鍔ㄤ慨鏀筯ibernate.cfg.xml鏂囦歡鍚庯紝閮借閲嶆柊娣誨姞榪欎釜xml鐗囨柇銆?br />
    涓囦簨鍏峰錛岀幇鍦ㄥ彲浠ュ啓涓祴璇曟潵媯楠屼竴涓嬩簡錛?/p>

    //浠呬粎浣滀負紺轟緥錛屾病鏈夎繘琛屽紓甯稿鐞?/span>
    public static void main(String[] args)
    {
        Configuration cfg 
= new Configuration().configure() ;        
        SessionFactory  sFactory 
= cfg.buildSessionFactory() ;        
        
        Session session 
= sFactory.openSession() ;
        Transaction tx 
= session.beginTransaction();
        Mobileuser user 
= (Mobileuser)session.load(Mobileuser.class , new Integer(2)) ;
        String age 
= user.getMobilenumber() ;
        
        System.
out.println(age) ;
        tx.commit();
        session.close() ;
    }


鐏? 2008-01-11 09:34 鍙戣〃璇勮
]]>
Java 錛嶏紞 鍦‥clipse涓婁嬌鐢⊿pring http://www.tkk7.com/human2008/archive/2008/01/11/174495.html鐏?鐏?Fri, 11 Jan 2008 01:33:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174495.htmlhttp://www.tkk7.com/human2008/comments/174495.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174495.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174495.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174495.html涓婁竴綃囨枃绔?/a>浠嬬粛浜嗗浣曞湪Eclipse涓婁嬌鐢℉ibernate鐨勫叆闂紝鏈枃灝辯畝鍗曚粙緇嶄竴涓嬪浣曞湪Eclipse浣跨敤Spring銆?br />
    錛?錛夐鍏堬紝鏄笅杞絊pring錛屽彲浠ヤ粠sourceforge涓婁笅杞斤紝http://sourceforge.net/projects/springframework銆傜洰鍓嶇殑鏈鏂扮殑鍙互涓嬭澆 spring-framework-1.2.8-with-dependencies.zip 銆?br />
    錛?錛夌劧鍚庯紝鍙互灝哠pring寮曞叆鍒頒綘鐨勯」鐩腑銆?br />     鍏堝皢spring-framework-1.2.8-with-dependencies.zip瑙e帇錛屽皢鍏朵腑鐨剆pring.jar錛坉ist鐩綍涓級銆乧ommons-logging.jar錛坙ib\jakarta-commons鐩綍錛夈乴og4j-1.2.13.jar錛坙ib\log4j鐩綍錛夎繖涓変釜鏂囦歡澶嶅埗鍒扮殑”D:\java\Spring\lib" 鐩綍涓紝鐒跺悗鍦‥clipse涓緩绔嬩竴涓?#8220;Spring”搴擄紝灝嗛偅涓変釜鏂囦歡娣誨姞榪?#8220;Spring”搴撲腑銆?br />
    錛?錛夋祴璇曚竴涓嬶細
    鏂板緩涓や釜綾伙紝Student鍜孊ook銆?br />
public class Book 
{
    
private int id = 0 ;
    
private String bookName ;
    
public String getBookName() {
        
return bookName;
    }
    
public void setBookName(String bookName) {
        
this.bookName = bookName;
    }
    
public int getId() {
        
return id;
    }
    
public void setId(int id) {
        
this.id = id;
    }
}

public class Student 
{
    
private int age = 0;    
    
private String name ;
    
private Book book ;

    
public int getAge() {
        
return age;
    }

    
public void setAge(int age) {
        
this.age = age;
    }
    
    
public String getName() {
        
return name;
    }

    
public void setName(String name) {
        
this.name = name;
    }

    
public Book getBook() {
        
return book;
    }

    
public void setBook(Book book) {
        
this.book = book;
    }
    
    
public String GetBookName()
    {
        
return this.book.getBookName() ;
    }    
}

    鐒跺悗娣誨姞Spring閰嶇疆鏂囦歡bean.xml錛坆ean.xml蹇呴』鍦–LASSPATH鍙互瀛樺彇鍒扮殑鐩綍涓級錛?br />
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    
<bean id="student" class="com.springTest.Student">
        
<property name="age">
            
<value>22</value>
        
</property>
        
<property name="name">
            
<value>Sky</value>
        
</property>
        
<property name="book" ref="book">            
        
</property>
    
</bean>
    
    
<bean id="book" class="com.springTest.Book">
         
<property name="id">
            
<value>1000</value>
        
</property>
        
<property name="bookName">
            
<value>鎴樹簤涓庡拰騫?/span></value>
        
</property>
    
</bean>
</beans>

    鏈鍚庣殑涓葷▼搴忥細
    public static void main(String[] args) 
    {
        Resource res 
= new ClassPathResource("bean.xml");
        BeanFactory factory 
= new XmlBeanFactory(res);

        Student stu 
= (Student) factory.getBean("student");
        System.
out.println(stu.GetBookName());
    }
    榪愯鍚庡彲浠ョ湅鍒版帶鍒跺彴杈撳嚭錛嶏紞“鎴樹簤涓庡拰騫?#8221;銆?br />
    涓嶴pring.net鐨勪嬌鐢ㄥ熀鏈畬鍏ㄤ竴鑷達紙鍖呮嫭閰嶇疆鏂囦歡銆丅eanFactory鐨勮幏鍙栫瓑錛夛紝鎵浠ョ啛鎮塖pring.net鐨勪綘榪囨浮鍒癝pring鏄潪甯稿鉤婊戠殑銆?br />     鏈鍚庯紝Java涓殑灞炴у疄鍦ㄦ槸娌℃湁C#涓殑綆媧侊紝鍛靛懙銆?br />

鐏? 2008-01-11 09:33 鍙戣〃璇勮
]]>
Java 錛嶏紞 鍦‥clipse涓婁嬌鐢╔Fire寮鍙慦ebService http://www.tkk7.com/human2008/archive/2008/01/11/174493.html鐏?鐏?Fri, 11 Jan 2008 01:31:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/11/174493.htmlhttp://www.tkk7.com/human2008/comments/174493.htmlhttp://www.tkk7.com/human2008/archive/2008/01/11/174493.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174493.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174493.html
    閲囩敤鐨勫伐鍏鳳細Eclipse3.1.2 + Tomcat5.5 + XFire1.1 銆備嬌鐢╔Fire寮鍙慦ebService搴旇璇撮潪甯哥殑瀹規槗錛屽彧闇瑕佹寜鐓т笅闈緥瀛愮殑姝ラ鏉ュ仛錛?br />
錛?錛夊湪Eclipse涓柊寤轟竴涓猟ynamic Web Project 錛屽亣璁懼悕涓篨FireZhuweiTest銆?br />
錛?錛夊鍏Fire鐢ㄦ埛搴撱傝搴撲腑搴斿寘鍚玿fire-1.1鐩綍涓嬬殑xfire-all-1.1.jar鏂囦歡錛屼互鍙?strong>xfire-1.1\lib
鐩綍涓嬬殑鎵鏈夋枃浠躲?br />
錛?錛夊皢涓婅堪鐨刋Fire鐢ㄦ埛搴撲腑鐨勬墍鏈夋枃浠舵嫹璐濆埌XFireZhuweiTest欏圭洰鐨?strong>WebContent\WEB-INF\lib
鐩綍涓嬨?br />
錛?錛変慨鏀?strong>WebContent\WEB-INF\web.xml
閰嶇疆鏂囦歡鐨勫唴瀹癸紝涓嬮潰鏄慨鏀瑰悗web.xml錛?br />
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>
    XFireZhuweiTest</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    
    <servlet>
         <servlet-name>XFireServlet</servlet-name>
         <servlet-class>
                 org.codehaus.xfire.transport.http.XFireConfigurableServlet
         </servlet-class>
     </servlet>
     
     <servlet-mapping>
         <servlet-name>XFireServlet</servlet-name>
         <url-pattern>/servlet/XFireServlet/*</url-pattern>
     </servlet-mapping>
 
     <servlet-mapping>
         <servlet-name>XFireServlet</servlet-name>
          <url-pattern>/services/*</url-pattern>
     </servlet-mapping>
    
</web-app>

    web.xml涓坊鍔犵殑servlet鏄犲皠琛ㄦ槑錛屾墍鏈夊尮閰?#8220;/services/*”鐨剈rl璇鋒眰鍏ㄩ儴浜ょ粰org.codehaus.xfire.transport.http.XFireConfigurableServlet鏉ュ鐞嗐?br />
錛?錛夌紪鍐欓渶瑕佸彂甯冧負WebService鐨凧ava綾伙紝榪欎釜渚嬪瓙涓槸涓涓潪甯哥畝鍗曠殑MathService.java銆?/p>

package com.zhuweisky.xfireDemo;
public class MathService 
{
    
public int Add(int a ,int b)
    {
        
return a+b ;
    }
}

錛?錛夊湪WebContent\META-INF鐩綍涓嬫柊寤?strong>xfire鏂囦歡澶?/strong>錛岀劧鍚庡湪xfire鐩綍涓嬫坊鍔犱竴涓猉Fire浣跨敤鐨勯厤緗枃浠秙ervices.xml錛岃閰嶇疆鏂囦歡涓殑鍐呭鍙嶆槧浜嗚灝嗗摢浜沯ava綾誨彂甯冧負web鏈嶅姟銆傛湰渚嬩腑鐨剆ervices.xml鍐呭濡備笅錛?br />

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
    
<service>
      
<name>MathService</name>
      
<namespace>http://com.zhuweisky.xfireDemo/MathService</namespace>
      <serviceClass>com.zhuweisky.xfireDemo.MathService</serviceClass>
    
</service>
</beans>

    XFire浼氬熷姪Spring鏉ヨВ鏋恠ervices.xml錛屼粠涓彁鍙栭渶瑕佸彂甯冧負WebService鐨勯厤緗俊鎭?br />
    寰堝鏂囩珷浠嬬粛鍒拌繖閲屽氨瀹屼簡錛岀劧鑰屽綋鎴戞寜鐓т粬浠墍璇寸殑鍚姩WebService 錛岀劧鍚庨氳繃http://localhost:8080/XFireZhuweiTest/services/MathService?wsdl 鏉ヨ闂湇鍔℃弿榪版椂錛屽嵈鎶涘嚭浜嗗紓甯革紝璇磗ervices.xml鏂囦歡涓嶅瓨鍦紞錛?br /> “org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [META-INF/xfire/services.xml]; nested exception is java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist”銆?nbsp; 

錛?錛夐潪甯稿叧閿殑涓鐐癸紝灝辨槸榪欎釜灝忛毦棰樿姳璐逛簡鎴戝皢榪戜竴澶╃殑鏃墮棿銆?br />     鍦?strong>WebContent\WEB-INF鐩綍涓嬫柊寤?strong>classes鏂囦歡澶癸紝鐒跺悗闇瑕佸皢WebContent涓嬬殑鏁翠釜META-INF鏂囦歡澶瑰壀鍒囧埌鏂板緩鐨刢lasses鏂囦歡澶逛笅銆?br />     鍒拌繖閲岋紝欏圭洰鐨勫畬鏁寸洰褰曠粨鏋勫涓嬶細



錛?錛夊湪Package Explorer涓変腑XFireZhuweiTest欏圭洰錛屽彸閿?>Run As ->Run On Server錛屽叧鑱斿埌浣犳満鍣ㄤ笂鐨凾omCat錛岀劧鍚庝細鍚姩Tomcat錛屼互鍚姩web鏈嶅姟銆傦紙娉ㄦ剰錛屽湪榪涜姝ゆ楠や箣鍓嶏紝璇峰厛鍋滄TomCat錛?nbsp;

錛?錛夊湪IE涓緭鍏?http://localhost:8080/XFireZhuweiTest/services/MathService?wsdl 浼氬緱鍒版紜殑web鏈嶅姟鎻忚堪鏂囨。銆?/p>

錛?0錛夋祴璇曞垰鍙戝竷鐨剋ebService銆傛垜浣跨敤C#鍔ㄦ佽皟鐢╓eb鏈嶅姟錛?/p>

                //C#
                string url = "http://localhost:8080/XFireZhuweiTest/services/MathService" ;
                
object[] args ={1,2} ;
                
object result = ESFramework.WebService.WebServiceHelper.InvokeWebService(url ,"Add" ,args) ;
                MessageBox.Show(result.ToString());

    錛堝叧浜嶤#鍔ㄦ佽皟鐢╓eb鏈嶅姟錛岃鍙傝榪欓噷錛?br />
    鎵ц鍚庯紝寮瑰嚭瀵硅瘽妗嗭紝鏄劇ず緇撴灉鏄?銆?



鐏? 2008-01-11 09:31 鍙戣〃璇勮
]]>
閫氱敤鍒嗛〉瀛樺偍榪囩▼(鍘熷垱)http://www.tkk7.com/human2008/archive/2008/01/10/174353.html鐏?鐏?Thu, 10 Jan 2008 09:08:00 GMThttp://www.tkk7.com/human2008/archive/2008/01/10/174353.htmlhttp://www.tkk7.com/human2008/comments/174353.htmlhttp://www.tkk7.com/human2008/archive/2008/01/10/174353.html#Feedback0http://www.tkk7.com/human2008/comments/commentRss/174353.htmlhttp://www.tkk7.com/human2008/services/trackbacks/174353.html1.鍒嗛〉瀛樺偍榪囩▼

CREATE   procedure pagination

 @str_sql           varchar(1000) = '*',     -- 鎵ц鐨凷QL 涓嶅惈Order by 鍐呭  
 @str_orderfield    varchar(255)='''',       -- 鎺掑簭鐨勫瓧孌靛悕 
 @page_size         int = 10,                     -- 欏靛ぇ灝?nbsp;
 @page_index        int = 0,                      -- 欏電爜
 @order_type        int,                           -- 璁劇疆鎺掑簭綾誨瀷, 闈?-1 鍊煎垯闄嶅簭 
 @total_count       int   output                 -- 榪斿洖璁板綍鎬繪暟, 闈?0 鍊煎垯榪斿洖 
as

---------------------
-- 鑾峰彇鎸囧畾欏電殑鏁版嵁--
---------------------

declare @strsql   varchar(5000)              -- 涓昏鍙?br /> declare @strtmp   varchar(5000)             -- 涓存椂鍙橀噺
declare @strorder varchar(400)              -- 鎺掑簭瀛椾覆
declare @cruRow   int                            -- 褰撳墠琛屽彿
 

--鎵ц鎬繪暟緇熻
exec getRowCount @str_sql,@total_count output

set @strtmp =  ' select * from ' +
        '      (select top ' + convert(varchar(10),@page_size) + ' * from ' +
        '         (select top ' + convert(varchar(10),(@page_index + 1) * @page_size)  +' * from '+        -- N+1欏?br />         '            ('+ @str_sql +') Src '

--鎺掑簭鏂瑰悜
if @order_type !=0
 begin
 set @strsql= @strtmp +
       '          order by @str_orderfield asc) a ' +
       '       order by @str_orderfield desc)b' +
              ' order by @str_orderfield asc'
 end
else
 begin
 set @strsql= @strtmp +
       '          order by @str_orderfield desc) a ' +
       '       order by  @str_orderfieldasc)b' +
              ' order by  @str_orderfield desc'
 end

exec (@strsql)

GO

----------------------------------------------------------------------------

2.鍒嗛〉瀛樺偍榪囩▼鎵ц涓敤鍒扮殑琛屾暟緇熻

create  procedure getRowCount
       @sql    nvarchar(2000),
       @count  int output
as
begin

--------------------
-- 鑾峰彇鏁版嵁鎬昏鏁?--
--------------------

  declare @tmpsql nvarchar(2000)
  set @tmpsql='select @count=count(*)  from ('+ @sql +') a'

  execute sp_executesql @tmpsql,N'@count int output',@count output
 
end

GO



鐏? 2008-01-10 17:08 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 3344永久在线观看视频免费首页| www.xxxx.com日本免费| 久久午夜夜伦鲁鲁片无码免费| 国产精品亚洲综合专区片高清久久久 | 四虎永久在线精品免费一区二区| 国产美女在线精品免费观看| 在线aⅴ亚洲中文字幕| 成年女人毛片免费播放视频m| 亚洲国产乱码最新视频| 成年美女黄网站18禁免费| 国产精品亚洲av色欲三区| 亚洲A∨精品一区二区三区| 两性色午夜免费视频| 亚洲国产成人久久精品动漫| 久久免费的精品国产V∧| 亚洲精品福利你懂| 国产无遮挡色视频免费视频| 九一在线完整视频免费观看| 亚洲人成人无码网www电影首页| 无码国产精品一区二区免费vr| 亚洲国产成+人+综合| 国产极品美女高潮抽搐免费网站| 深夜免费在线视频| 亚洲欧洲日产国码久在线观看| 无码精品A∨在线观看免费| 成a人片亚洲日本久久| 激情97综合亚洲色婷婷五| 久久国产免费观看精品3| 亚洲精品精华液一区二区 | 亚洲精品无码久久久久牙蜜区| 国产成人综合久久精品免费 | 精品在线观看免费| 亚洲大尺度无码专区尤物| 无人在线观看完整免费版视频| 精品一区二区三区免费毛片| 亚洲AV无码专区国产乱码电影 | 久久久影院亚洲精品| 毛片免费全部播放一级| 一级特黄色毛片免费看| 亚洲人成片在线观看| 亚洲精品和日本精品|