<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    junctioner

    2009年9月16日

    序:給自己找點(diǎn)事做

    時(shí)間和日子在無(wú)知無(wú)覺(jué)中過(guò)去,問(wèn)自己收獲了什么?

    每天無(wú)所事事。


    列個(gè)標(biāo)題,挖個(gè)坑,希望每天能來(lái)挑一點(diǎn)土。

    《解讀eclipse_3.50_galileo 源碼》

    從第一次使用eclipse(大概是03年的事,那時(shí)比較好用的是2.1版還是1.4版已記不清了)就想看看這么巧妙的一個(gè)玩意兒是怎么實(shí)現(xiàn)的,一直懶散無(wú)度,從未下手。

    這段時(shí)間用SWT做個(gè)小工具,是邊找邊抄,為什么要那么寫(xiě),不知道--真是有違一慣的作風(fēng)。

    每天下班后,都不是為什么奔忙著,網(wǎng)頁(yè)?網(wǎng)游?都不知道自己看了些什么,玩了些什么。

    eclipse 的jar很多,核心的是core.runtime和osgi(早些版本里,是沒(méi)有osgi的),core.runtime比較小,就幾個(gè)類,先攻擊小的少的--毛主席真是偉大的軍事家呀。

    敬禮,睡覺(jué)去。

    posted @ 2009-09-16 22:17 junctioner 閱讀(235) | 評(píng)論 (0)編輯 收藏

    2008年12月22日

    一窮二白學(xué)習(xí)C語(yǔ)言(1)

    前言
      一直想學(xué)習(xí)C,在剛知道有計(jì)算機(jī)的時(shí)候就想學(xué)習(xí)C,上學(xué)時(shí),偷上計(jì)算機(jī)專業(yè)的課,學(xué)了半年Turbo C,學(xué)到指針時(shí),暈了,也就沒(méi)有下文。工作之后,時(shí)有心血來(lái)潮之時(shí),但還是沒(méi)怎么學(xué)習(xí),Java還是比較簡(jiǎn)單,Java幾乎占據(jù)了工作全部,更少有學(xué)習(xí)C了。用Java,研究到Java的核心,發(fā)覺(jué)還是得學(xué)C,學(xué)呀,學(xué)吧。
      今天也是一時(shí)的心血來(lái)潮了,趁著有股勁,開(kāi)始動(dòng)手,記錄一下,以期待和方便下次來(lái)潮。

      寫(xiě)出的代碼,得編譯才可以運(yùn)行,這個(gè)編譯環(huán)境,得先搭起來(lái)。VC、Visual Studio,都微軟的東西,有點(diǎn)抵觸,也有些大,不安裝了,手工配一套環(huán)境吧。
      網(wǎng)上搜了一下,Windows系統(tǒng)配C的編譯環(huán)境,得要MinGW或者cygWin,以前都下載過(guò),但一直不知道它們本身是個(gè)什么東西,再查,知道大概:二者均基于GCC(GNU Compiler Collection -格努編譯套件),再加一些基本的類庫(kù)。去各自的官網(wǎng)分別下載安裝,感受:cygWin更象是一個(gè)linux的模擬器,把linux環(huán)境下的GCC給模擬出來(lái),其它的就都一樣需要基本的編譯器、類庫(kù),其它的如make工具。使用的時(shí)候,個(gè)人取向選擇minGW,在環(huán)境變量中指向{$minGW}\bin,gcc和make就可以在cmd中運(yùn)行了。
      寫(xiě)個(gè)簡(jiǎn)單的hello world源程序,gcc一把,生產(chǎn)可執(zhí)行文件,運(yùn)行,結(jié)果出來(lái),OK!

      注,下載minGW時(shí),我選擇了自動(dòng)安裝下載,一個(gè)個(gè)的下載,點(diǎn)來(lái)點(diǎn)去,累的慌。
    單獨(dú)下載minGW,要如下幾個(gè)包,再分別解開(kāi)放在同一目錄中。
    gcc-core
    C語(yǔ)言編譯器
    gcc-c++
    C++語(yǔ)言編譯器
    mingw-runtime
    MinGW的運(yùn)行時(shí)庫(kù)(這個(gè)必須安裝)

    win32api

    win32API函數(shù)頭文件和連接庫(kù)

    binutils

    MinGW的匯編器和連接器等基礎(chǔ)工具

    gdb

    MinGW中的調(diào)試工具
    mingw32-make
    Make工具,用以更好的管理你的項(xiàng)目
    make解后,沒(méi)有通常的make.exe,只有一個(gè)mingw32-make.exe文件,其實(shí),把這個(gè)文件改名為make.exe就行。

    posted @ 2008-12-22 15:53 junctioner 閱讀(1701) | 評(píng)論 (6)編輯 收藏

    2007年6月19日

    年跡

    1978:第一個(gè)關(guān)鍵的年份
    1988:雖然是第一個(gè)十年,但十歲的生日沒(méi)多少印象了,更多的是開(kāi)始注意的第一個(gè)年份。
    1993:初中結(jié)束了,
    1997:高中結(jié)束了,
    2000/06/30:大學(xué)畢業(yè)了,世紀(jì)之交呀!
    2000/08/03:子身跑到汕頭的一個(gè)小鎮(zhèn)開(kāi)始第一份工作,真正的人生地不熟。到目的地時(shí),身上只有20塊錢了,還是年青的老板給我付的“摩的”費(fèi)。
    2001/11/03:混到一份跟自己所學(xué)專業(yè),所做的工作一點(diǎn)也不相關(guān)的工作,毅然一個(gè)人跑到北京。首都呀!當(dāng)時(shí)天很冷,比我想象的要冷,下車后把能穿的都穿上,不知象什么熊。打22塊錢的車找到公司,競(jìng)?cè)贿€沒(méi)到上班時(shí)間。
    2004/06/xx:一個(gè)傷感的月份,也注定要離開(kāi)這個(gè)做了好幾年有公司。
    2004/08/04:換了一個(gè)比較遠(yuǎn)的公司,在朝陽(yáng),自己租住在西直門。
    2005/02/28:一個(gè)沒(méi)有29日的月份,還沒(méi)開(kāi)始工作,就沒(méi)有選擇的離開(kāi)了。
    2005/07/03:
    2006/07/03:換了一份工作,不知什么感受。

    posted @ 2007-06-19 16:35 junctioner 閱讀(274) | 評(píng)論 (0)編輯 收藏

    2007年5月30日

    Velocity之首次研究

        與Velocity的第一次見(jiàn)面,是03年,有個(gè)新同事推薦使用,因當(dāng)時(shí)我在做別的項(xiàng)目,也沒(méi)怎么仔細(xì)了解,簡(jiǎn)單的知曉類似如模板一類的東西。之后有過(guò)幾次接觸,但,都沒(méi)花時(shí)間仔細(xì)看,前段時(shí)間,幫朋友做一個(gè)小東西,覺(jué)得用個(gè)模板做,會(huì)省很多事,想到Velocity。東西很小,做完了都沒(méi)時(shí)間看Velocity,今天正好有時(shí)間,研究研究。
        Velocity是apache下的一個(gè)開(kāi)源項(xiàng)目,其網(wǎng)址:http://velocity.apache.org/;下載地址:http://velocity.apache.org/download.cgi,可直接下載源碼,也可通過(guò)SVN獲取源碼。
        在eclipse中創(chuàng)建一個(gè)web應(yīng)用工程,把Velocity的源碼拷到j(luò)ava資源目錄下,自動(dòng)編譯后,報(bào)幾個(gè)錯(cuò),拷貝下載的Velocity源碼lib目錄下的commons-collections-3.1.jar、oro-2.0.8.jar、commons-lang-2.1.jar這個(gè)三類包到web應(yīng)用工程的lib目錄下即可。
        準(zhǔn)備就緒,就寫(xiě)個(gè)例子跑跑試試。寫(xiě)一個(gè)hello.vm的模板文件,創(chuàng)建一個(gè)對(duì)應(yīng)的Servlet,就可以運(yùn)行了。兩文件源碼貼出如下:
        hello.vm
    <html>
        
    <body>
        #set($greet = "你好哇!")
            Hello!$name, $greet
        
    </body>
    </html>
        HelloServlet.java
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Hashtable;
    import java.util.Properties;

    import javax.servlet.ServletConfig;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.velocity.Template;
    import org.apache.velocity.app.Velocity;
    import org.apache.velocity.context.Context;
    import org.apache.velocity.servlet.VelocityServlet;

    public class HelloServlet extends VelocityServlet {

        
    protected Properties loadConfiguration(ServletConfig config)
                
    throws IOException, FileNotFoundException {

            Properties p 
    = new Properties();

            String path 
    = config.getServletContext().getRealPath("/");

            
    if (path == null) {
                path 
    = "/";
            }

            p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
            p.setProperty(
    "runtime.log", path + "velocity.log");
            p.setProperty(Velocity.INPUT_ENCODING, 
    "GBK");
            p.setProperty(Velocity.OUTPUT_ENCODING, 
    "GBK");
            
    return p;
        }

        
    public Template handleRequest(HttpServletRequest request,
                HttpServletResponse response, Context ctx) {
            Template template 
    = null;
            
    try {
                ctx.put(
    "name","Velocity");
                template 
    = Velocity.getTemplate("/hello.vm");
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
            
    return template;
        }
    }
        創(chuàng)建servelt要注意的幾個(gè)地方。
        1、新建的Servlet要擴(kuò)展Velocity的VelocityServlet
        2、在servlet中要實(shí)現(xiàn) public Template handleRequest(HttpServletRequest request,HttpServletResponse response, Context ctx)
           A)把要返回到頁(yè)面上的數(shù)據(jù)放到context中對(duì)應(yīng)到指定鍵值(鍵值名為對(duì)應(yīng)模板中定義的變量名)
           B)引入指定模板文件
        3、導(dǎo)入配置文件的方法protected Properties loadConfiguration(ServletConfig config),是否實(shí)現(xiàn),是可選的 ,其作用在后面說(shuō)明。

    發(fā)布運(yùn)行后,訪問(wèn)http://localhost:8080/vt/HelloServelt,就可看到結(jié)果了。

    運(yùn)行起來(lái),看到結(jié)果,是覺(jué)得很簡(jiǎn)單,其運(yùn)行過(guò)程,就要跟蹤看源碼才能知道了。

        看源碼,先看的,肯定是VelocityServlet.java。發(fā)現(xiàn)源碼注釋中,這個(gè)類已不推薦使用,推薦使用Velocity的一個(gè)子項(xiàng)目tool中的VelocityViewServlet.java,我沒(méi)有當(dāng)tool子項(xiàng)目,就先看這個(gè)“過(guò)時(shí)的”實(shí)現(xiàn)。
         VelocityServlet.java,擴(kuò)展了HttpServlet,實(shí)現(xiàn)了doGet、doPost、init基本方法,前兩個(gè)方法都直接調(diào)用新實(shí)現(xiàn)的doRequest方法,這些都是很常規(guī)的操作。
        doRequest方法做如下幾件事:創(chuàng)建上下文、設(shè)置響應(yīng)內(nèi)容文件類型、獲取模板(調(diào)用每個(gè)請(qǐng)求中的具體實(shí)現(xiàn))、合并數(shù)據(jù)做出響應(yīng)、出錯(cuò)處理及資源清理。看到這兒,整個(gè)請(qǐng)求和響應(yīng)過(guò)程很清晰,并沒(méi)什么特別的處理。
        接下來(lái),看看它的初始化做了些什么事。就做了三件事,超類初始化、自己的初始化、緩存內(nèi)容類型數(shù)據(jù)。自己的初始化,也就是(i)導(dǎo)入配置信息,(ii)根據(jù)配置信息做初始化設(shè)置。導(dǎo)入配置信息,是根據(jù)指定的幾個(gè)地方,獲取配置數(shù)據(jù)(在提供的樣例中,重載了它的獲取配置數(shù)據(jù)的方法,自己靈活的寫(xiě)入一些配置信息);根據(jù)配置信息做初始化的工作,應(yīng)用單例設(shè)計(jì)模式,保證初始化工作的處理唯一。
        VelocityServlet自已的初始化,調(diào)用另一個(gè)類org.apache.velocity.app.Velocity的init( Properties p )方法,就看看Velocity里做了些什么。Velocity里全是靜態(tài)方法。主要有如下幾個(gè)方法:
        1、初始化;2、預(yù)演傳入的數(shù)據(jù)(發(fā)現(xiàn)在應(yīng)用中沒(méi)有使用,只在單元測(cè)試代碼中引用到);3、合并數(shù)據(jù)和模板;4、設(shè)置/獲取屬性;5、操作信息提示(不過(guò),都不推薦使用了),整個(gè)的看下來(lái),有兩點(diǎn):1、主要的還是初始化和數(shù)據(jù)合并了;2、這個(gè)類只是一個(gè)中轉(zhuǎn)類,所有的方法,最終都是調(diào)另一個(gè)類org.apache.velocity.runtime.RuntimeSingleton的方法。
        打開(kāi)RuntimeSingleton的代碼,看一看,發(fā)現(xiàn)它同Velocity類差不多,類本身不做實(shí)際的處理操作。它與Velocity不同的是,它是申明一個(gè)靜態(tài)的實(shí)例,再調(diào)用這個(gè)實(shí)例,個(gè)別地方(init())加了同步控制。如此處理體現(xiàn)它這個(gè)類的名字--單例,核心的還是這個(gè)靜態(tài)實(shí)例org.apache.velocity.runtime.RuntimeInstance。
        到RuntimeInstance,就開(kāi)始接觸到Velocity的處理核心了。

        寫(xiě)到這兒,突然沒(méi)有寫(xiě)下去的沖動(dòng)了,暫切休息一下。
       
        抽時(shí)間看了一下Velocity子項(xiàng)目tool下的VelocityViewServlet的源碼,比VelocityServlet要實(shí)現(xiàn)的好多了,與struct接合的比較好。
        Velocity,不僅僅適合于web應(yīng)用,還可以作生成SQL、XML的模板,內(nèi)容比較多,待一一挖掘。

    posted @ 2007-05-30 15:49 junctioner 閱讀(2914) | 評(píng)論 (3)編輯 收藏

    2007年4月24日

    開(kāi)源需要一個(gè)良好的商業(yè)模式

    在網(wǎng)上看到“蓋茨北大演講遭開(kāi)源人士抗議”一事,對(duì)開(kāi)源兄的行為,我選擇不置可否,但對(duì)軟件而言,我選擇開(kāi)源。
    現(xiàn)在的局面是,商業(yè)化的軟件比開(kāi)源的軟件,要活地滋潤(rùn)、舒展多了,所以也會(huì)發(fā)生這次事件。

    為什么會(huì)出面這種局面?為什么需要開(kāi)源?在這里我不闡述自己的觀點(diǎn)--持有同感的人都有自己的想法。

    開(kāi)源如果想要活得不那么艱難,我想:需要一個(gè)良好的商業(yè)模式支持。
    開(kāi)源不是免費(fèi)!
    開(kāi)源要生存發(fā)展,也需要營(yíng)養(yǎng)供應(yīng),不能僅靠一部分懷開(kāi)源激情的人或者組織無(wú)償奉獻(xiàn)能支撐起來(lái)的。
    linux、jboss的生存模式算是比較成功的,但還不能夠同商業(yè)化軟件相比較,還需要更充足的營(yíng)養(yǎng)源。
    這二者的模式也是一定范圍內(nèi)有效,不能做到推而廣之。

    開(kāi)源軟件生存模式的探索之路還很廣,還很遠(yuǎn),需要有志之士共同努力。

    posted @ 2007-04-24 10:03 junctioner 閱讀(998) | 評(píng)論 (0)編輯 收藏

    2007年3月28日

    在eclipse 3.3m6發(fā)布之際的感慨

         摘要:   閱讀全文

    posted @ 2007-03-28 13:20 junctioner 閱讀(2973) | 評(píng)論 (9)編輯 收藏

    2007年3月2日

    再次開(kāi)始centric crm研究

    上次看centric crm,是一年多前的事了,這一年中,忙忙碌碌的,都不知道做了些什么,但還是一直關(guān)注crm的相關(guān)信息。
    年初,有個(gè)朋友需要一套CRM軟件,我就給他推薦centric crm,但他不懂技術(shù),希望我?guī)退愀悖@就應(yīng)了下來(lái),又一次開(kāi)始認(rèn)真的看centric crm。
    [溫故而知新] 看以前貼的關(guān)于centric crm的blog,心有慚愧,希望產(chǎn)生誤導(dǎo)的影響不會(huì)很大。

    今天作一些更正,算是補(bǔ)償。
    1、獲取centric crm源碼,得先注冊(cè),注冊(cè)地址:http://www.centriccrm.com/Register.do
    ?  先輸入你的郵箱地址(登錄用這個(gè));
    ?  個(gè)人名稱可隨便填寫(xiě);
    ?  注冊(cè)成功后,密碼會(huì)發(fā)送到你郵箱中,

    2、官方用SubVersion管理centic crm的源碼,可以當(dāng)一個(gè)subverion的客戶端,指定到要下載版本的鏈接,   輸入注冊(cè)的郵箱和密碼,就可以獲取源碼。
      現(xiàn)在有4.0和4.1兩個(gè)版本,subverion鏈接分別如下,   
      4.1源碼:https://svn.centricsuite.com/webapp/branches/branch-41   
      4.0源碼:https://svn.centricsuite.com/webapp/tags/rel-200611151353-402   

      我使用eclipse,裝了個(gè)SVN插件,配好后,直接check out成eclipse的項(xiàng)目。   
      SVN eclipse plugin是subclipse,插件獲取網(wǎng)站:http://subclipse.tigris.org/update_1.2.x

    3、源碼獲取下來(lái)目錄如下圖
    centric crm源文件目錄結(jié)構(gòu)

    [源碼check out到eclipse后,把整個(gè)項(xiàng)目編碼方式改為UTF-8,因源文件注釋中有些時(shí)間戳是中文簡(jiǎn)體字,不設(shè)成UTF-8,就顯示為亂碼,看起來(lái)沒(méi)什么大礙,但若修改源文件再保存就會(huì)彈出編碼格式不正確錯(cuò)誤信息]
    bin:暫沒(méi)看這個(gè)目錄中的內(nèi)容
    doc:基本文件目錄
    ??? Binary EULA.rtf:版權(quán)申明的文件;
    ??? CRM Installation and Setup.pdf:安裝配置文件,描述的比較簡(jiǎn)單;
    ??? db-schema.html:庫(kù)表設(shè)計(jì)說(shuō)明文件,了解centric CRM表結(jié)構(gòu)這個(gè)文件最佳參考資料
    lib:項(xiàng)目需要的jar文件目錄
    pref:特定情況下需要的配置文件目錄
    src:源碼基本目錄
    ??? src目錄內(nèi)有下面四個(gè)主要目錄:
    ??? java:java源文件目錄
    ??? web:web展示源文件目錄
    ??? sql:庫(kù)表腳本文件目錄
    ??? testcases:單元測(cè)試文件目錄

    ??? src目錄內(nèi)有下面四個(gè)主要文件:
    ??? build.xml:項(xiàng)目編譯、發(fā)布的ant配置文件
    ??? home.properties.example:build.xml的輔助文件樣例,定義一些基本路徑信息,如:服務(wù)發(fā)布目錄
    ??? master.properties:build.xml的輔助文件,定義系統(tǒng)的一些屬性配置
    ??? README.txt:比較詳細(xì)的安裝配置文件(我就是看這個(gè)文件進(jìn)行安裝配置的,有時(shí)間可以把安翻譯成中文)
    4、開(kāi)始安裝配置
    ??? 1)安裝需求Java JDK,就不用說(shuō)了,1.4以上都可以,1.4以下行不行,我也沒(méi)試,有興趣的朋友可試試,測(cè)試結(jié)果能告之當(dāng)是感激了。我裝的是JDK 5.0。
    ??? 2)應(yīng)用服務(wù)用tomcat 5.0,5.5都可以(不過(guò)tomcat5.5得在JDK5.0上才能運(yùn)行起來(lái)),Jboss、Weblogic、WebSphere、Resin也可以運(yùn)行。我用Tomcat 5.5.3。
    ??? 3)數(shù)據(jù)庫(kù)支持DB、MSSQL、MySQL、Oracle等,具體信息可看README.txt。我用的是MySQL 5.0.21。驅(qū)動(dòng)jar是MySQL官網(wǎng)下載的 mysql-connector-java-5.0.4-bin.jar。
    ??? 4)還需要有ant工具,申明是要1.6的,我用eclipse自帶的1.6.5。
    ??? 5)centric CRM中用到WebServices,可去下載一個(gè),
    ??? 下載地址:http://apache.downlod.in/ws/axis/1_4/axis-src-1_4.zip。
    ??? 解開(kāi)zip包,把webapp下面的axis目錄拷貝到$tomcat/webapps/目錄下。

    ??? 準(zhǔn)備好上幾步要求的,可以開(kāi)始配置build.xml運(yùn)行的兩個(gè)屬性文件。
    ??? 復(fù)制home.properties.example文件為 home.properties,相關(guān)屬性做如下修改:
    ##?The?following?properties?can?be?set?instead?of?using?environment?variables

    ##?Declare?the?webapp?server's?directory?to?compile?using?web?app?server?libraries
    ##?based?on?the?webapp?type?configured?in?build.properties
    ## 設(shè)置Tomcat安裝路徑
    CATALINA_HOME=D:/java/tomcat5.5.3
    #GERONIMO_HOME=/path/to/geronimo?or?websphere?ce
    #JBOSS_HOME=/path/to/jboss
    #WEBLOGIC_HOME=/path/to/weblogic
    #WEBSPHERE_HOME=/path/to/websphere

    ##?CENTRIC_HOME?can?be?used?to?compile?directly?to?the?webapp's?deployment
    ##?directory?(for?development),?or?to?any?directory?for?later?generating?a?.war
    ## 設(shè)置centric CRM 發(fā)布到tomcat中的路徑
    CENTRIC_HOME=D:/java/tomcat5.5.3/webapps/centric
    #CENTRIC_HOME=/path/to/weblogic/domain/autodeploy/directory

    ##?At?times,?scripts?will?need?to?install?or?upgrade?fileLibrary?documents?when
    ##?deploying?from?source
    ## 設(shè)置項(xiàng)目中配置文件存放目錄
    CENTRIC_FILELIBRARY=D:/Project.java/Centric?CRM?4.1/fileLibrary
    ##?To?skip?web?based?GUI?the?fileLibrary?must?be?in?the?WEB-INF?folder,?useful
    ##?for?development
    ## 設(shè)置配置文件發(fā)布目錄
    CENTRIC_FILELIBRARY=D:/java/tomcat5.5.3/webapps/centric/WEB-INF/fileLibrary

    ##?If?using?Axis?Web?Services,?then?declare?the?webapp?home?so?that?the
    ##?Centric?CRM?descriptors?can?be?installed?with?"ant?ws"
    ## 設(shè)置axis在tomcat中的發(fā)布目錄
    AXIS_HOME=D:/java/tomcat5.5.3/webapps/axis
    ? ??
    ??? master.properties 相關(guān)屬性做如下修改:

    ##
    ## NOTE: Do not edit "master.properties" -- edit a copy of it
    ## These settings are used by ant for the build and installation process
    ##




    ## PART 1: Are you reading the instructions? (required)

    ## The following is a control, uncomment the following line after modifying
    ## these properties... we just want to make sure you're paying attention and
    ## the build process doesn't do something it shouldn't!
    ## 確認(rèn)修改過(guò)此配置文件標(biāo)識(shí)
    PROPERTIES=configured




    ## PART 2: Deployment settings (required for compiling)

    ## Default language setting: even though any locale can be specified, the
    ## following have Centric CRM translations and supporting database data
    ## args="de_DE,en_US,es_VE,fr_FR,it_IT,ja_JP,nl_NL,pt_BR,ro_RO,ru_RU,sl_SI"/>
    SYSTEM.LANGUAGE=en_US

    ## Web server debug level:
    ## Extended debug information can be displayed in the web server's log file
    ## Comment out for no debugging, especially production server
    DEBUGLEVEL=2
    #DEBUG=true
    #DEBUGLEVEL=lines,vars,source

    ## Specify the web server to build/deploy against (required):
    ## Use catalina for Tomcat
    ## Use geronimo for WAS-CE or Apache Geronimo
    ## All others untested but planned for
    ## 指定Web Server 應(yīng)用服務(wù)類型
    WEBSERVER.TYPE=catalina
    #WEBSERVER.TYPE=geronimo
    #WEBSERVER.TYPE=jboss
    #WEBSERVER.TYPE=weblogic
    #WEBSERVER.TYPE=websphere

    ## A self-signed SSL Certificate will be generated with the following parameters,
    ## which can then be added to Tomcat's SSL configuration and/or
    ## signed by an authority
    ## Common name should be a domain name
    ## Ex. *.yourcompany.com or www.yourcompany.com
    KEYSTORE.COMMONNAME=127.0.0.1
    KEYSTORE.ORGANIZATION=Company
    KEYSTORE.ORGANIZATIONALUNIT=Unit
    KEYSTORE.CITY=City
    KEYSTORE.STATE=State
    KEYSTORE.COUNTRY=US
    KEYSTORE.VALIDITY=1000

    ## Force users to use SSL in Centric CRM
    ## The web server must be configured for SSL if this option is set to true as
    ## Centric CRM will redirect non-secure URLs to the secure URL
    FORCESSL=false




    ## PART 3: Database installation settings (required for database installation)

    ## Uncomment and set the connection information for your specific database
    ## NOTE: The gatekeeper URL includes your database name, the site URL does not;
    ## The ant script will insert the database name after the specified url


    ## DB2
    ## CREATE DATABASE centric USING CODESET UTF-8 TERRITORY US pagesize 32 k
    #GATEKEEPER.DBTYPE=db2
    #GATEKEEPER.DRIVER=com.ibm.db2.jcc.DB2Driver
    #GATEKEEPER.URL=jdbc:db2://127.0.0.1:50000/centric
    #GATEKEEPER.USER=db2admin
    #GATEKEEPER.PASSWORD=
    #SITE.DBTYPE=db2
    #SITE.DRIVER=com.ibm.db2.jcc.DB2Driver
    #SITE.URL=jdbc:db2://127.0.0.1:50000/
    #SITE.USER=db2admin
    #SITE.PASSWORD=

    ## POSTGRESQL
    ## createdb -E UNICODE centric_crm
    #GATEKEEPER.DBTYPE=postgresql
    #GATEKEEPER.DRIVER=org.postgresql.Driver
    #GATEKEEPER.URL=jdbc:postgresql://127.0.0.1:5432/centric_crm
    #GATEKEEPER.USER=postgres
    #GATEKEEPER.PASSWORD=
    #SITE.DBTYPE=postgresql
    #SITE.DRIVER=org.postgresql.Driver
    #SITE.URL=jdbc:postgresql://127.0.0.1:5432/
    #SITE.USER=postgres
    #SITE.PASSWORD=

    ## MySQL
    ## CREATE DATABASE centric_crm CHARACTER SET utf8 COLLATE utf8_general_ci
    ## 指定數(shù)據(jù)庫(kù)類型及連接配置
    GATEKEEPER.DBTYPE=mysql
    GATEKEEPER.DRIVER=com.mysql.jdbc.Driver
    GATEKEEPER.URL=jdbc:mysql://127.0.0.1:3306/my_centric_crm
    GATEKEEPER.USER=my_centric_crm
    GATEKEEPER.PASSWORD=crm
    SITE.DBTYPE=mysql
    SITE.DRIVER=com.mysql.jdbc.Driver
    SITE.URL=jdbc:mysql://127.0.0.1:3306/
    SITE.USER=my_centric_crm
    SITE.PASSWORD=crm


    ## MS SQL SERVER
    #GATEKEEPER.DBTYPE=mssql
    #GATEKEEPER.DRIVER=net.sourceforge.jtds.jdbc.Driver
    #GATEKEEPER.URL=jdbc:jtds:sqlserver://127.0.0.1:1433/centric_crm
    #GATEKEEPER.USER=centric_crm
    #GATEKEEPER.PASSWORD=
    #SITE.DBTYPE=mssql
    #SITE.DRIVER=net.sourceforge.jtds.jdbc.Driver
    #SITE.URL=jdbc:jtds:sqlserver://127.0.0.1:1433/
    #SITE.USER=centric_crm
    #SITE.PASSWORD=

    ## CodeGear's InterBase (formally owned by Borland) www.codegear.com
    ## Do NOT put the database in the centric file library, or at least the root,
    ## as the build.xml copies its prefs into there using the same name as your database file!
    ## "e:/centriccrm_db" is only an example
    #GATEKEEPER.DBTYPE=interbase
    #GATEKEEPER.DRIVER=interbase.interclient.Driver
    #GATEKEEPER.URL=jdbc:interbase://127.0.0.1:3050/e:/centriccrm_db/centric_crm.ib
    #GATEKEEPER.USER=sysdba
    #GATEKEEPER.PASSWORD=masterkey
    #SITE.DBTYPE=interbase
    #SITE.DRIVER=interbase.interclient.Driver
    #SITE.URL=jdbc:interbase://127.0.0.1:3050/e:/centriccrm_db/
    #SITE.USER=sysdba
    #SITE.PASSWORD=masterkey

    ## FIREBIRD SQL
    #GATEKEEPER.DBTYPE=firebird
    #GATEKEEPER.DRIVER=org.firebirdsql.jdbc.FBDriver
    #GATEKEEPER.URL=jdbc:firebirdsql:127.0.0.1/3050:${CENTRIC_FILELIBRARY}/centric_crm.fdb
    #GATEKEEPER.USER=sysdba
    #GATEKEEPER.PASSWORD=masterkey
    #SITE.DBTYPE=firebird
    #SITE.DRIVER=org.firebirdsql.jdbc.FBDriver
    #SITE.URL=jdbc:firebirdsql:127.0.0.1/3050:${CENTRIC_FILELIBRARY}/
    #SITE.USER=sysdba
    #SITE.PASSWORD=masterkey

    ## DAFFODIL DB EMBEDDED
    #GATEKEEPER.DBTYPE=daffodildb
    #GATEKEEPER.DRIVER=in.co.daffodil.db.jdbc.DaffodilDBDriver
    ## YOU MUST EDIT THE path in the following line to where you want the database
    ## created.
    ## The user and password must be set to daffodil
    #GATEKEEPER.URL=jdbc:daffodilDB_embedded:centric_crm;create=true;path=/home/fileLibrary/centric_crm/daffodildb
    #GATEKEEPER.USER=daffodil
    #GATEKEEPER.PASSWORD=daffodil
    #SITE.DBTYPE=daffodildb
    #SITE.DRIVER=in.co.daffodil.db.jdbc.DaffodilDBDriver
    #SITE.URL=jdbc:daffodilDB_embedded:
    ## YOU MUST EDIT THE path in the following line to where you want the database
    ## created.
    ## Ex. Use the same path as Centric CRM's deployed file library, then the name of
    ## the database, then end in daffodildb
    ## The user and password must be set to daffodil
    #SITE.APPEND=;create=true;path=/home/fileLibrary/centric_crm/daffodildb
    #SITE.USER=daffodil
    #SITE.PASSWORD=daffodil

    ## ORACLE
    ## During installdb, use XE (or whatever you add under gatekeeper) for the
    ## database name since the install has not been adjusted for Oracle yet
    #GATEKEEPER.DBTYPE=oracle
    #GATEKEEPER.DRIVER=oracle.jdbc.driver.OracleDriver
    #GATEKEEPER.URL=jdbc:oracle:thin:@//127.0.0.1:1521/XE
    #GATEKEEPER.USER=
    #GATEKEEPER.PASSWORD=
    #SITE.DBTYPE=oracle
    #SITE.DRIVER=oracle.jdbc.driver.OracleDriver
    #SITE.URL=jdbc:oracle:thin:@//127.0.0.1:1521/
    #SITE.USER=
    #SITE.PASSWORD=

    ## Derby
    #GATEKEEPER.DBTYPE=derby
    #GATEKEEPER.DRIVER=org.apache.derby.jdbc.EmbeddedDriver
    ## YOU MUST EDIT THE path in the following line to where you want the database
    ## created.
    #GATEKEEPER.URL=jdbc:derby:/home/fileLibrary/centric_crm/derbydb;create=true;upgrade=true
    #GATEKEEPER.USER=centric_crm
    #GATEKEEPER.PASSWORD=
    #SITE.DBTYPE=derby
    #SITE.DRIVER=org.apache.derby.jdbc.EmbeddedDriver
    ## YOU MUST EDIT THE path in the following line to where you want the database
    ## created.
    #SITE.URL=jdbc:derby:/home/fileLibrary/centric_crm/
    #SITE.APPEND=;create=true;upgrade=true
    #SITE.USER=centric_crm
    #SITE.PASSWORD=


    ## PART 4: Advanced configuration (optional)

    ## Web-based configuration is recommended and is the default setting
    ##
    ## If you uncomment the following CONTROL line then you must configure the
    ## remaining parameters yourself. You will also have to create a new Centric
    ## CRM user and password before using Centric CRM.
    ##
    ## If you DO NOT uncomment the CONTROL line, then the first time you use
    ## Centric CRM, you will be presented with a configuration wizard which will
    ## assist you in defining these parameters and creating a new Centric CRM
    ## user and password.
    ##
    #CONTROL=BYPASS_WEB-BASED_APPLICATION_SETUP

    ## The following are methods for working with multiple development databases
    ## The APPCODE must be the same for the following Gatekeeper prefs and Site prefs
    GATEKEEPER.APPCODE=centric
    SITE.APPCODE=centric

    ## Define the web address used in communications when using a single development
    ## database
    #WEBSERVER.URL=127.0.0.1:8080/centric

    ## Define the web address used in communications when using multiple development
    ## databases
    #WEBSERVER.ASPMODE=true
    #WEBSERVER.PORT=8080
    #WEBSERVER.CONTEXT=/centric

    ## The server's default timezone for new users (using standard Java names)
    SYSTEM.TIMEZONE=America/New_York
    ## Default currency for all users
    SYSTEM.CURRENCY=USD
    ## Default country for all users
    SYSTEM.COUNTRY=UNITED STATES

    ## External Servers used by the system
    MAILSERVER=127.0.0.1
    FAXSERVER=127.0.0.1
    FAXENABLED=false
    PROXYSERVER=false
    PROXYSERVER.HOST=
    PROXYSERVER.PORT=

    ## Apache Axis Web Services
    ## 指定WebService 服務(wù)路徑
    AXIS.WEBAPP=/axis
    AXIS.HOST=127.0.0.1
    AXIS.PORT=8080


    ## Asterisk integration
    ASTERISK.OUTBOUND.ENABLED=false
    ASTERISK.INBOUND.ENABLED=false
    ASTERISK.URL=
    ASTERISK.USERNAME=
    ASTERISK.PASSWORD=
    ASTERISK.CONTEXT=from-internal

    ## XMPP/Jabber integration
    XMPP.ENABLED=false
    XMPP.CONNECTION.SSL=false
    XMPP.CONNECTION.URL=
    XMPP.CONNECTION.PORT=5222
    XMPP.MANAGER.USERNAME=
    XMPP.MANAGER.PASSWORD=

    ## LDAP integration
    LDAP.ENABLED=false
    # Validate username OR email against LDAP: username|email
    LDAP.CENTRIC_CRM.FIELD=username
    LDAP.FACTORY=com.sun.jndi.ldap.LdapCtxFactory
    LDAP.SERVER=ldap://127.0.0.1:389
    # Search by attribute, otherwise composite DN: true|false
    LDAP.SEARCH.BY_ATTRIBUTE=true
    LDAP.SEARCH.USERNAME=cn=admin,ou=IT,o=COMPANY
    LDAP.SEARCH.PASSWORD=
    LDAP.SEARCH.CONTAINER=o=COMPANY
    LDAP.SEARCH.ORGPERSON=inetOrgPerson
    LDAP.SEARCH.SUBTREE=true
    LDAP.SEARCH.ATTRIBUTE=mail
    #LDAP.SEARCH.BY_ATTRIBUTE=false
    #LDAP.SEARCH.PREFIX=cn=
    #LDAP.SEARCH.POSTFIX=,o=COMPANY

    ## Define the system's email address
    EMAILADDRESS=Centric CRM <noreply@127.0.0.1>

    ## Timed events, definitely turn on for a production server
    CRON.ENABLED=true

    ## Connection Pool Settings
    CONNECTION_POOL.DEBUG=false
    CONNECTION_POOL.TEST_CONNECTIONS=false
    CONNECTION_POOL.ALLOW_SHRINKING=true
    CONNECTION_POOL.MAX_CONNECTIONS=10
    CONNECTION_POOL.MAX_IDLE_TIME.SECONDS=60
    CONNECTION_POOL.MAX_DEAD_TIME.SECONDS=300

    ## Layout Settings
    ## Template replaces the following files which MUST exist:
    ## CSS:
    ## template1.css
    ## template1-8pt.css
    ## template1-10pt.css
    ## JSP:
    ## template1nav.jsp
    ## template1style.jsp
    ## template1styleNoSession.jsp
    ## template1styleContainer.jsp
    LAYOUT.TEMPLATE=template1
    LAYOUT.JSP.WELCOME=welcome.jsp
    LAYOUT.JSP.LOGIN=login.jsp
    #LAYOUT.JSP.LOGIN.LOGO=<img src="images/centric/logo-centric.gif" width="295" height="66" alt="" border="0" />
    #LAYOUT.JSP.LOGIN.TEXT=Centric CRM

    ## Max Imports that can run concurrently
    IMPORT_QUEUE_MAX=1

    ## Opportunity behavior
    # OPPORTUNITY.DEFAULT_TERM=52
    # OPPORTUNITY.DEFAULT_UNITS=W
    # OPPORTUNITY.MULTIPLIER=52
    # OPPORTUNITY.CLOSE_PROBABILITY=25,50,75

    完成上述兩文件的修改后,打開(kāi)eclipse的ant視圖,

    ??? 運(yùn)行:ant deploy 完成項(xiàng)目的編譯發(fā)布工作。

    下一步是創(chuàng)建庫(kù)表,可運(yùn)行 ant installdb 創(chuàng)建庫(kù)表。
    ??? 運(yùn)行 ant installdb前,先在啟動(dòng)MySQL,創(chuàng)建一個(gè)表空間及用戶,
    ??? CREATE DATABASE my_centric_crm CHARACTER SET utf8 COLLATE utf8_general_ci;
    ??? GRANT ALL PRIVILEGES ON my_centric_crm.* TO my_centric_crm@"%" IDENTIFIED BY "crm";


    ??? 創(chuàng)建庫(kù)表時(shí),若出現(xiàn)類似"Specified key was too long; max key length is 765bytes"的錯(cuò)誤,是因?yàn)闃?biāo)識(shí)"UNIQUE NOT NULL"的字段長(zhǎng)度>255(255=765/3)了。MySQL數(shù)據(jù)庫(kù)的unique類字段長(zhǎng)度限制比較短,視不同版本,有的限制為765個(gè)字節(jié),有的限制為1000個(gè)字節(jié),UTF是占用3個(gè)字節(jié)位的,所以在這個(gè)限制上還要除以3。centric CRM的mysql庫(kù)腳本中,unique類字段的長(zhǎng)度是設(shè)為300長(zhǎng)字符的,出現(xiàn)上述問(wèn)題一個(gè)可行的妥協(xié)辦法是修改腳本unique類字段的長(zhǎng)度。

    建完表后,可以啟動(dòng)tomcat服務(wù),運(yùn)行 ant ws 激活WebService,應(yīng)用服務(wù)配置安裝完成!

    通過(guò) http://localhost:8080/centric,第一次進(jìn)入centric crm系統(tǒng)。

    ??? 第一次進(jìn)入系統(tǒng)時(shí),是一個(gè)登錄界面,用戶是dhvadmin,密碼是admin,登錄進(jìn)入,是一步步的系統(tǒng)參數(shù)設(shè)置操作,操頁(yè)面提示,就可完成設(shè)置。最后是創(chuàng)建應(yīng)用系統(tǒng)公司名稱和管理員用戶密碼的界面,再次使用系統(tǒng)時(shí),就以管理員名稱和密碼登錄,對(duì)系統(tǒng)進(jìn)行設(shè)置及添加管理其他用戶。(至此,告一段落。)

    posted @ 2007-03-02 14:53 junctioner 閱讀(3747) | 評(píng)論 (1)編輯 收藏

    2006年7月17日

    男孩、年青的父親、男人

     有一段時(shí)間沒(méi)寫(xiě)blog了,個(gè)中的理由就是這段時(shí)間心情浮躁,沉不下來(lái)。

      畢業(yè)后參加工作已整整6個(gè)年頭了。從一個(gè)只知道找父母要錢花,不知道社會(huì)是什么樣的“弱冠”到現(xiàn)在剛開(kāi)始意識(shí)到要靠自己養(yǎng)家糊口,照顧父母的準(zhǔn)“而立”,要考慮的事情比以前復(fù)雜的多了,這段時(shí)間工作也是動(dòng)蕩的,沒(méi)有一個(gè)穩(wěn)定的基礎(chǔ)考慮自己要考慮的問(wèn)題,愈是浮萍一樣的沒(méi)有根。

      今,得空閑一會(huì),瀏覽blog,看到一個(gè)blog,它的公告圖片上是一個(gè)漂亮的小女孩,它的ICO是卡通的唐老鴨,抑郁的心情忽的開(kāi)闊了。想那小女孩肯定是作者的女兒,唐老鴨肯定是作者女兒的所愛(ài)。如果年青的媽媽,她的blog上放這些,是很容易理解的,而作者是一個(gè)大老爺們,他的blog上放這些與“大老爺們”身份有巨大的反差,但正是這種反差,讓我看到一位父親對(duì)女兒的喜愛(ài)。

    posted @ 2006-07-17 14:51 junctioner 閱讀(317) | 評(píng)論 (0)編輯 收藏

    2006年4月3日

    信息化市場(chǎng)中,用戶就是上帝否?

    粗讀王永強(qiáng)的 解析管理信息化的“十大陷阱”?,最有同感的是“買方?jīng)Q定性陷阱”。

    ???中國(guó)信息化的現(xiàn)狀說(shuō):鄧小平提出建設(shè)有中國(guó)特色的社會(huì)主義,或許是因?yàn)橹袊?guó)的政治宣傳力度比較強(qiáng),企業(yè)的發(fā)展管理策略也帶上“特色”,信息化就自然而然的要有自己的特色,如果拷貝另一企業(yè)的信息化經(jīng)驗(yàn)成果,就是沒(méi)有特色--你用你的槍,我用我的炮。
    ???企業(yè)信息化軟件實(shí)施說(shuō):信息化是一把手工程,如果一把手支持稍有松懈,所有的工作就有可能失敗,原因什么呢??縣官不如現(xiàn)管,現(xiàn)管的人不支持,這工作就開(kāi)展不了。而上一個(gè)新系統(tǒng),對(duì)于現(xiàn)管的人來(lái)說(shuō),就如同是一次革命,牽扯到的利益太多,稍有一點(diǎn)不均衡,不滿意的人出來(lái)了,你的工作就得暫停一下。所以,新系統(tǒng)必須考慮到企業(yè)的實(shí)際情況,現(xiàn)有的模式,你再先進(jìn)、再科學(xué),也得適合我的腳,我才穿。
    ???信息化系統(tǒng)提供商說(shuō):我們是公司行為,先生存,再發(fā)展;客戶要什么東西,我們就做什么東西;先做項(xiàng)目,再做產(chǎn)品。????
    ???圈內(nèi)流傳消息說(shuō):中國(guó)軟件不如印度,更比不上歐美。歐美做內(nèi)核,簡(jiǎn)單重復(fù)的勞力就支援第三世界發(fā)展,換句話說(shuō)是中國(guó)幫外國(guó)做產(chǎn)品,但沒(méi)有自己的產(chǎn)品,而且作為勞動(dòng)關(guān)系雇員還不如同桌。

    ???在這條“生態(tài)鏈”中,誰(shuí)是誰(shuí)非?作為一個(gè)局外人看其中的問(wèn)題很清楚,但身處某一個(gè)鏈節(jié)中時(shí),沒(méi)有誰(shuí)能是我這是問(wèn)題。如果企業(yè)說(shuō),我要一個(gè)產(chǎn)品,不要項(xiàng)目,這樣,中國(guó)肯定會(huì)出現(xiàn)一些響當(dāng)當(dāng)?shù)漠a(chǎn)品;如果系統(tǒng)提供商說(shuō),我有非常好的產(chǎn)品,可以做實(shí)施,不做項(xiàng)目,產(chǎn)品有吸引力應(yīng)能取到市場(chǎng)的一杯羹。

    posted @ 2006-04-03 11:11 junctioner 閱讀(270) | 評(píng)論 (0)編輯 收藏

    2006年3月16日

    ajax-json-rpc處理過(guò)程

    在web.xml文件中,可以發(fā)現(xiàn)
      <servlet-mapping>
        <servlet-name>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-name>
        <url-pattern>/JSON-RPC</url-pattern>
      </servlet-mapping>
    所有的請(qǐng)求提交到這個(gè)Servlet后分發(fā)處理并做出響應(yīng)。

    JSONRPCServlet.java中實(shí)現(xiàn)了init()和service(),

    init() 中只是取了些配置參數(shù)作了相關(guān)設(shè)置;

    service() 中實(shí)現(xiàn)了請(qǐng)求處理;

    1.從session中創(chuàng)建/獲取JSONRPCBridge對(duì)象;

    2.把提交的數(shù)據(jù)裝入一個(gè)JSONObject對(duì)象中;

    3.用JSONRPCBridge對(duì)象的call方法處理JSONObject對(duì)象并返回JSONRPCResult對(duì)象。

    這個(gè)處理較ajax-buffalo 中的處理單調(diào)了不少。

    再來(lái)看看JSONRPCBridge.java是如何構(gòu)建的。

    1.內(nèi)置6個(gè)內(nèi)部類:CallbackData、ClassData、LocalArgResovleData、MethodCandidate、MethodKey、ObjectInstance;

    2.還有一些輔助處理的方法,比較多(提取為一個(gè)或者多個(gè)輔助類比較好);

    3.核心的就是call()方法了。運(yùn)用的是java反射機(jī)制,進(jìn)行方法調(diào)用。這個(gè)方法寫(xiě)的也比較長(zhǎng),沒(méi)仔細(xì)看,只看到有它兩個(gè)可取的地方,一個(gè)就返回對(duì)象的序列化,另一個(gè)是對(duì)不同異常,給出相應(yīng)返回的處理比較細(xì)致,這樣有利于找到異常在什么地方,估計(jì)是原因引起的。

    在客戶端的處理,是把各方法、對(duì)象串連在一起,封裝后,便于應(yīng)用。

    它把請(qǐng)求的數(shù)據(jù)對(duì)象化再以串的形式提交,后端再做一個(gè)反向操作,方便了數(shù)據(jù)處理。這種方式比ajax-buffalo 中把數(shù)據(jù)組織成一個(gè)XML結(jié)構(gòu)的數(shù)據(jù)包提交、處理效率高。



    posted @ 2006-03-16 13:57 junctioner 閱讀(1754) | 評(píng)論 (2)編輯 收藏

    僅列出標(biāo)題  下一頁(yè)
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(8)

    隨筆分類

    隨筆檔案

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久9久9精品免费观看| 亚洲av不卡一区二区三区| 亚洲免费视频播放| 久青草视频97国内免费影视| 亚洲最大av资源站无码av网址| 国产亚洲福利精品一区| 人人狠狠综合久久亚洲高清| 99久久免费国产精品特黄| 美女被cao网站免费看在线看| 色婷婷综合缴情综免费观看| 亚洲国产aⅴ成人精品无吗| 亚洲综合校园春色| 亚洲色av性色在线观无码| 亚洲日韩精品一区二区三区无码| 亚洲?v女人的天堂在线观看| 日韩高清免费在线观看| 国产91色综合久久免费| 十八禁无码免费网站| 美女被cao网站免费看在线看| 美女被免费网站91色| 亚洲精品视频免费| 免费国产草莓视频在线观看黄| 精品国产日韩亚洲一区在线| 亚洲性色精品一区二区在线| 亚洲日韩乱码中文无码蜜桃| 亚洲视频免费观看| 亚洲美女人黄网成人女| 久久精品国产亚洲| 亚洲国产精品lv| 久久久久亚洲AV无码专区首JN| 亚洲电影免费在线观看| 97亚洲熟妇自偷自拍另类图片 | 亚洲情A成黄在线观看动漫软件| 亚洲综合一区二区| 亚洲视屏在线观看| 亚洲最大的黄色网| 亚洲6080yy久久无码产自国产| 精品在线观看免费| 99久久免费国产精品热| 国产免费人成视频在线播放播| 97在线免费观看视频|