源碼編譯EWeb4J整合Jetty熱加載搭建教程

        本文介紹了使用 eclipse+maven+jetty+eweb4j來打造一個很是高效率的Java Web開發環境。一旦搭建起來,無需重複的mvn install命令,無需重複的重啓服務器,你所須要作的僅僅是編輯源碼,刷新瀏覽器就能夠看到最新的代碼變化。有了Maven,你的jar依賴不再是問題,可是單純maven,若是修改源碼,老是須要進行install,實在是有夠讓人討厭,加了jetty插件讓你遠離這個煩惱,單純的 servlet開發,須要你繼承一個類,配置xml 路由,單元測試麻煩,訪問數據庫更加麻煩,加了 eweb4j,對這一切 你將感到很是輕鬆,無需繼承父類,無需實現接口就能夠享受SSH的MVC、ORM、IOC,朋友,來試試吧?


=================== 2013-03-12 11:08 修改====================
解決windows 下 jetty的靜態資源鎖定問題:
java

  • 先找到 .m2/maven/repository/org/eclipse/jetty/jetty-webapp/{版本號}/ 裏面的jar包
  • 打開jar包以後找到那個 org/jetty/webapp/webdefault.xml 文件
  • 拷貝到maven項目的src/main/resources目錄
  • 編輯該文件修改useFileMappedBuffer的配置,修改true爲false,保存
  • 編輯pom的jetty plugin的配置:
    <!-- jetty plugin configuration -->
    <plugin>
     <groupId>org.mortbay.jetty</groupId>
     <artifactId>jetty-maven-plugin</artifactId>
     <configuration>
       <webAppConfig>
          <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
        </webAppConfig>	          
      </configuration>
    </plugin>
    保存
  • 關掉jetty,從新 mvn jetty:run 便可

======================================================================= git

一、要求


    a) 裝好 maven 插件的 Eclipse github

    b) Cmd命令行能夠執行mvn命令(可選) web

    c) 網絡通暢 數據庫

二、搭建步驟 windows

    a) 從 Github裏面下載最新的EWeb4J項目並本地構建 瀏覽器

        i. 打開 https://github.com/laiweiwei/eweb4j-framework  服務器

        ii. 點擊 ZIP 下載 網絡

        iii. 下載以後解壓到某個目錄下 mvc


        iv. 打開cmd命令行,到該目錄執行mvn install -Dmaven.test.skip=true

        v. 等待構建成功

    b) 打開eclipse,新建一個Maven jee5 項目



   c) 編輯pom.xml,添加eweb4j依賴

    d) 編輯pom.xml,添加jetty插件

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.1.8.v20121106</version>
    <configuration>
        <stopKey>stop</stopKey>
        <stopPort>5599</stopPort>
        <webAppConfig>
            <contextPath>/</contextPath>
        </webAppConfig>
        <scanIntervalSeconds>10</scanIntervalSeconds>
        <connectors>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                <port>8090</port>
                <maxIdleTime>60000</maxIdleTime>
            </connector>
        </connectors>
    </configuration>
</plugin>

    e) 運行jetty server

        這裏能夠用eclipse來運行,也能夠在cmd下運行,筆者比較喜歡在cmd下運行

        mvn jetty:run

    f) 打開瀏覽器測試訪問index.jsp

        這說明服務器啓動成功了,也能夠訪問index.jsp了,接下來開始集成eweb4j框架

        注意,如下過程無需重啓服務器!也無需執行maven的任何命令,你所要作的,就是編輯源碼 :)

    g) 編輯web.xml,添加EWeb4J框架Filter

<!-- eweb4j -->
<filter>
    <filter-name>EWebFilter</filter-name>
    <filter-class>org.eweb4j.mvc.EWebFilter</filter-class>
    <init-param>
        <param-name>StartFileName</param-name>
        <param-value>start.xml</param-value>
    </init-param>
    <init-param>
        <param-name>CheckStartFileExist</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>ConfigBasePath</param-name>
        <param-value>${RootPath}/WEB-INF/classes/</param-value>
    </init-param>
    <init-param>
        <param-name>BaseURLKey</param-name>
        <param-value>BaseURL</param-value>
    </init-param>
    <init-param>
        <param-name>ReqParamMapKey</param-name>
        <param-value>ReqParamMap</param-value>
    </init-param>
    <init-param>  
        <param-name>ForwardBasePath</param-name>
        <param-value>/</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>EWebFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- eweb4j -->

        注意新增了CheckStartFileExist參數,參數值設置爲false表示不檢查框架啓動配置文件是否存在,這樣的話若是不存在start.xml,框架也能夠啓動而且使用默認的配置。

        保存以後查看控制檯信息,會發現這個:

        表示服務器掃描到了新的變化,而且已經加載了EWeb4JFilter類了。接下來咱們來編寫一個HTTP控制器類。

    h) 建立一個UserControl控制器類

    i) 打開瀏覽器測試訪問該控制器類 /user?name=eweb4j

        能夠看到,整個過程不須要重啓服務器,也不須要執行maveninstall命令,就能訪問最新的代碼了,仍是比較方便的 

        你能夠繼續修改源碼,而後直接訪問瀏覽器就能看到變化,若是不能立刻看到變化,稍等一下子(根據插件參數配置 ,如今是 10秒鐘間隔時間,能夠調整)就能看到變化。

三、進階

    經過上面的介紹咱們看到使用eclipse+jetty+maven+eweb4j開發javaweb程序的效率仍是比較高的。可是因爲jetty的特殊性,致使eweb4j的啓動配置文件讀取路徑跟正常狀況稍微有些不一樣。

    通常狀況下,${RootPath}是運行期的根目錄,例如 target/xxxx,可是在這裏,沒有進行maveninstall,所以target目錄下也就沒有生成項目目錄,這時候,這個${RootPath}其實指向的是源碼項目根目錄


    所以呢,咱們要建立的start.xml文件須要在源碼也有一份,之後發佈項目以後同步到真正的WEB-INF\classes目錄下。

    爲了方便框架在找不到start.xml文件的狀況下能自動建立一份樣本,咱們須要修改web.xml的啓動參數

    而後,在源碼項目裏面建立WEB-INF/classes目錄


     接下來訪問瀏覽器,記住,第一次的時候框架會報一個異常,再刷新下便可正常訪問。而後會發現WEB-INF/classes目錄下會生成一個start.xml文件

    有了這個start.xml,就能夠開啓ORM模塊進行數據庫訪問,以及配置其餘功能特性了。

    記住!之後開發完成後,要記得把配置文件同步到相應的目錄裏面哦 :) 

相關文章
相關標籤/搜索