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

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

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

    nighty

    折騰的年華
    posts - 37, comments - 143, trackbacks - 0, articles - 0

    將Apache Roller部署到MyEclipse上面

    Posted on 2009-11-22 21:04 寒武紀 閱讀(2255) 評論(2)  編輯  收藏 所屬分類: Java
     

    都說roller在國外是二次開發博客系統的首選,但是下載源代碼之后發現是它是基于netbeans項目結構開發的。平時用習慣了Eclipse,所以想搬到MyEclipse上面,但沒有想到居然那么不容易,折騰了整整一天,才最終跑起來。網上的參考信息太少,大概都是那二三篇的轉貼,全部結合起來就差不多可以解決,借此總結一下,希望用到的朋友有參考作用!

    1. 準備環境

    MyEclipse  6.0

    JDK       1.6.0_05

    Tomcat     5.5.27 (建議用5.5以上版本)

    Roller      4.0.1

    2. 下載Roller

    Roller的主頁http://roller.apache.org/ 下載最新的roller版本,目前是4.0.1,同時下載源代碼包和官筆發布程序包的zip,分別為apache-roller-src-4.0.1.zipapache-roller-4.0.1.zip

    下載發布程序的原因是源源代碼包里有一些內容和發布包不一致,導致源代碼在Eclipse中編譯后在運行時會報錯,因為對源代碼不熟悉,所以還無法定位到錯誤的原因所在。另外一些配置文件只有在它官方的發布包中才有,一會要用到它。

    3. 搭建項目環境

    MyEclipse中新建一個Web項目,命名為roller,J2EE環境選擇1.4。

    解壓縮roller的二個包,為了說明的方便,我們把apache-roller-src-4.0.1.zip的解壓縮后目錄叫做roller-src,把apache-roller-4.0.1.zip的解壓縮后目錄叫做roller-bin。

    roller-src/apps/weblogger/src/java目錄下的org整個目錄的源文件復制到項目中的src里面;

    lib中添加jar文件。二種方法,可以從roller-src中的tools目錄中逐個目錄地把所有的jar文件拷貝出來,為了簡單起見,還是從它的發布程序中直接拿更方便,從roller-bin中的WEB-INF/lib下面的所有jar都復制出來,放到我們的項目中的lib中去;

    roller默認是使用MySQL數據庫,但是lib里面缺少MySQLJDBC驅動,所以還要自己從網上下載驅動的jar,添加到WEB-INF/lib中,如果你是使用的其它數據庫,同樣需要手動下載它對應的驅動程序;

    roller-bin中復制除了WEB-INF目錄以外的所有文件,粘貼到我們項目中的WebRoot下面,這些是頁面文件和一些資源文件;

    復制roller-bin中的WEB-INF目錄下除了classes外的所有文件到我們項目中的WEB-INF目錄下,覆蓋掉默認的web.xml,你還可以發現它的一些jsp文件是放在WEB-INF下面的,起到很好的保護作用,roller是基于struts2開發的;

    roller-bin中的WEB-INF/classes目錄中,復制除了org目錄外的所有文件,到我們項目中的src里面,這些是系統的配置文件,包括了國際化資源、struts配置、log配置、數據庫腳本等等。

    roller還用到了郵件功能,需要把activation.jar,mail.jar二個j2eejar復制到tomcatcommon/lib目錄下,如果沒有這一步,可能啟動初始化會失敗!導致應用無法正常運行。

    到這里,所有的文件就已經全部搬到MyEclipse上面了,接下來要修改一些內容使用我們的項目能正常部署。

    4. 修改部分內容

    在我們項目的src中新建一個名稱為roller-custom.properties的文件,roller采用這個擴展配置現覆蓋系統的默認配置。網上有些說要把這個文件放到tomcatcommon/classes中,其實不用的,只要放在classpath中能找到就行了,所以我們把它放在我們的src目錄下面,方便修改,在該文件中添加如下內容:

    installation.type=auto
    database.configurationType=jdbc
    database.jdbc.driverClass=com.mysql.jdbc.Driver
    database.jdbc.connectionURL=jdbc:mysql://localhost:3306/rollerdb?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8
    database.jdbc.username=scott
    database.jdbc.password=tiger
    mail.configurationType=properties
    mail.hostname=smtp-server.example.com
    mail.username=scott
    mail.password=tiger

    注意database.jdbc.connectionURL這個配置后面需要帶上上面編碼的參數,不然安裝的過程可能會出現一些亂碼。修改urlusernamepassword這些,如果你有能正常使用的郵箱服務器,也填上。

    創建MySQL數據庫,名稱為rollerdb,并指定編碼為UTF-8。如果你使用的是root用戶,則不用授權,如果不是,則需要為用戶授權,下面是一個示例:

        

    啟動roller的時候它會查詢數據庫是否已經初始完成,如果沒有,它會自動進入安裝頁面,引導用戶進行安裝,做得非常人性化。

    修改部分源代碼。org.apache.roller.weblogger包里面的pojos包是有問題的!剛開始的時候老是無法啟動,報錯提示的是JPA的一個異常,根本不知道如何解決,后來在CSDN上找到一篇文章,說是pojos這個包的源碼有問題,可能跟發布包中的版本不一致,所以需要用變態一點的處理辦法。

        

    在我們的項目WEB-INF/lib中,找到roller-business.jarroller-web.jar(如上圖所示),這二個jar其實就是我們src中的所有java文件的編譯打包,為了不重復,先把roller-web.jar刪除掉,然后用winrar打開roller-business.jar,刪除pojos以外的其它四個包和那個WebloggerException.class。這樣,其它代碼可以正常編譯!

    下面是最終的基本結構截圖(僅參考)

    WeRoot目錄截圖
        

    Src目錄截圖:

        

    5. 其它補充說明

    按照上面的步驟,項目結構就基本上正常搭建了,真是費心費力!NetBeans下面沒有試過,興許會比這個簡單許多!反正都習慣Eclipse了,就都移過,后面再花些時間研讀一下它的源代碼,網上說是非常好的學習例子。

            Roller的系統全局配置文件是放在org.apache.roller.weblogger. org.apache.roller.weblogger.config包中的roller.properties中的。在這里能找到各項系統的配置,我們自己手動創建的roller-custom.properties是用來覆蓋一些常用屬性的。

            src下面的dbscripts是所有數據庫的SQL腳本,apache-roller-src-4.0.1.zip中提供的腳本是不完整的!所以需要使用正式發布包的腳本,它帶了數據庫的初始腳本,由系統自動引導創建,還有許多版本升級的補充腳本。

            默認的log配置是用文件形式,保存在tomcat的的logs目錄中,名稱為roller.log的,如果你啟動的過程遇到問題,請到這里去查看啟動日志,分析一下異常的原因。

            roller-custom.properties中配置的郵箱主機和用戶名密碼等,如果無法正常連接,它初始化時會報錯,但是不會影響正常啟動,前提是你必須把activation.jarmail.jar這二個文件放到tomcat里面。

            在調試的過程中發現org.apache.roller.weblogger.business.WebloggerImpl類的創建方法中有加載roller-verion.properties,但是在我們的src中沒有找到這個文件,原來是在roller-business.jar中包含了。好像另一個類也包含這一句啟動的初始代碼,如果找不到這個類,會拋出空指針Exception,同樣導致整個應用啟動失敗。所以剛開始的時候生硬地在WebloggerImpl類中115行加載了一段異常處理代碼如下:
        

            當然,如果你已經包含了roller-version.properties文件,這個異常是不會存在的!

            Roller的文檔非常齊全,圖文并茂,多多閱讀,就可以了解它的使用方法。IBM 開發者論壇就是基于它進行開發的,的確非常強大,想了解struts2、JPASpringAcegiVelocity等主流技術的都可以從這里找到示例,不過要多花些時間,從其它方面,比如結構劃分、代碼規范、theme切換等,都可以學習到很多東西。

            Roller Architecture(摘自網絡)

    Roller WebWeb and UI Layer

         Editor UI via Struts and JSP,blog and feed rendering via Velocity

         Feed parsing via ROME, Blogger API via Apache XML-RPC

    Roller BeansBusiness and Persistence Layer

         Hibernate/JPA for DBMSLucene for search



    多多學習,愿和大家共同分享!^_^
     這里打包一個PDF文件提供下載: 將Apache Roller部署到MyEclipse上面



    剛進場的時候戲就落幕

    Feedback

    # re: 將Apache Roller部署到MyEclipse上面  回復  更多評論   

    2009-11-22 22:45 by norsor
    值得借鑒!

    # re: 將Apache Roller部署到MyEclipse上面  回復  更多評論   

    2009-11-23 23:15 by TiGERTiAN
    4.0的二次開發,我去年到今年一直在做,他的pojos包沒有問題。你需要用它的ant配置文件來build,配置好之后,會生成其他的一些文件,同時也會生成那兩個jar包,你的web工程最好引用他的jar包,這樣類文件也會少些。它本身就是講邏輯和view分開的,所以最好按照他原來的方式做,這樣可以保證問題最少。
    希望我的一些資料能對你有些幫助,http://www.tkk7.com/TiGERTiAN/category/36013.html
    主站蜘蛛池模板: 亚洲理论在线观看| 亚洲最大视频网站| 少妇人妻偷人精品免费视频| 亚洲av日韩av激情亚洲| 久九九精品免费视频| 亚洲精品色在线网站| 亚洲综合色自拍一区| 99久久99久久精品免费看蜜桃| MM1313亚洲精品无码久久| 亚洲成a人片在线观看日本| 最近最新的免费中文字幕| 国产性生大片免费观看性| 亚洲午夜在线播放| 亚洲人成影院在线无码按摩店| 91成年人免费视频| 香蕉免费看一区二区三区| 亚洲一区二区三区在线观看网站| 亚洲精品无码MV在线观看| 啦啦啦www免费视频| 四虎成人精品永久免费AV| 男男黄GAY片免费网站WWW| 亚洲综合在线成人一区| jlzzjlzz亚洲乱熟在线播放| 人禽杂交18禁网站免费| 成人久久免费网站| 手机永久免费的AV在线电影网| 亚洲fuli在线观看| 亚洲国产人成网站在线电影动漫| 波多野结衣中文一区二区免费| 午夜国产精品免费观看| 无码人妻精品中文字幕免费| 特黄aa级毛片免费视频播放| 国产午夜亚洲精品| 久久精品亚洲一区二区三区浴池 | 在线看片免费人成视频福利| 色噜噜噜噜亚洲第一| 亚洲1234区乱码| 亚洲校园春色小说| 亚洲麻豆精品果冻传媒| 亚洲成AV人片在线播放无码| 久久国产成人亚洲精品影院|