當前位置:首頁 » 操作系統 » jetty源碼下載

jetty源碼下載

發布時間: 2023-08-31 06:48:03

① jetty-6.1.9 怎麼配置jdk

1. 首先從Jetty的官方網站wiki.eclipse.org/Jetty/Starting/Downloads下載最新的Jetty,上面有兩個版本7.x和8.x,7.x是運行在JDK5及以上版本,8.x,9.x是運行在JDK6及以上版本,這里我選擇了8.0.4版本。

2. 解壓壓縮包到指定目錄,且將其目錄路徑定義為${JETTY_HOME}

3. 啟動Jetty服務
3.1 進入${JETTY_HOME}目錄,然後運行「java -jar start.jar」,就可以啟動Jetty server了

3.2 打開瀏覽器,訪問localhost:8080,此時可以看到Jetty的歡迎頁面了。

4. Jetty配置
4.1 Jetty的配置文件都是放在${JETTY_HOME}/etc目錄下;

4.2 通過${JETTY_HOME}/etc/jetty-webapps.xml文件,可以看出Jetty中默認將所有的web app都放在了${JETTY_HOME}/webapps目錄下;(備註:9.x版本是${JETTY_HOME}/etc/webdefault.xml)

4.3 在Jetty包中默認帶了一個test.war的應用,可以${JETTY_HOME}/webapps目錄下找到這個文件,在啟動Jetty服務的時候默認已經部署了test.war應用。對於test.war文件,Jetty還定義了context文件,放在${JETTY_HOME}/contexts/test.xml,其中將contextPath定義成了「/」,這就是為什麼默認訪問localhost:8080/的時候為什麼是訪問test應用的原因了。

② is only available on Java 1.5 and highe

1. eclipse 下載安裝

這個就是最新版本就行,沒啥特殊的,安裝完畢,寫個HelloWorld能跑就行

2. 安裝配置運行jetty

下載最新版本jetty,解壓縮就行

3. 安裝eclipse的jetty插件

eclipse integration plugin,地址如下,各種安裝,eclipse market,配置說明都在這里(最省事的安裝就是從eclipse market頁面直接拖拽install按鈕到eclipse界面)

http://eclipse-jetty.github.io/installation.html

4. 配置jdk

因為要支持jsp,因此需要包含java編譯器的運行時jre,普通的jre是不包含編譯功能的,因此,需要在eclipse->window->preferences->java->installed jre中添加jdk目錄下的jre

5. 新建web項目

這個跟著eclipse的向導走就行了,沒啥特殊的(編譯時的jre,用啥都無所謂)

6. 運行含有jsp的web項目

第一次,需要run configuration

左邊的Jetty Webapp選擇添加

第一個標簽WebApp,按照自己項目的實際目錄填寫就好,默認是按照maven項目目錄規范來的,如果找不到,會報錯,run按鈕無法點擊

第三個標簽Options,Use Jetty at path ,選擇jetty解壓縮目錄就行,插件會自行檢測jetty版本

第五個標簽JRE,這里選擇的是jetty運行時的jre,需要選擇JDK的jre,alternate JRE選擇前面設置的就可以

這些都設置好了之後,應該就可以run了

常見的錯誤

1. no jsp support,用了這個插件,一般不會遇到這個問題,jetty默認啟動不支持jsp,需要配置,用了這個插件在Options標簽可以隨意選擇,這個問題就不是問題了(No JSP support. Check that JSP jars are in lib/jsp and that the JSP option has been specified to start.jar)

2. full jdk required,這個是JRE標簽里的jre/javaw,不是JDK里的,導致運行時出問題,這個可以通過console的輸出和console的標題來檢查(There is an error in invoking javac. A full JDK (not just JRE) is required)

3. ClassNotFound,這個問題有可能是因為缺少依賴的包,還有可能是因為你的Lib里jar太多了,比如混入了tomcat,jetty其它版本的jar,導致jetty初始化某些logger,servlet介面的時候,找的不是當前jetty里的實現,而是那些亂七八糟jar依賴的實現,然後找不到了。根據情況,先把亂七八糟的jar幹掉,然後在一點點添加。

③ 如何讓嵌入式Jetty載入Spring WebApplicationInitializer

使用Jetty的嵌入式API,可以將J2EE容器嵌入你的Application中,更進一步的是,採用Servlet 3.0的標准,你甚至可以省掉web.xml的配置文件,因此Spring提供了類 。但是在實際開發中,發現Jetty的嵌入式API默認情況下只載入WEB-INF/lib/或者WEB-INF/classes中的類。通過閱讀Jetty的源代碼,找到一個解決方法,代碼如下:
WebAppContext context = new WebAppContext();
context.setContextPath("/");
context.setBaseResource(Resource.newClassPathResource("META-INF/webapp"));
MetaData metaData = _ctx.getMetaData();
Resource webappInitializer = Resource.newResource(WebApp.class.getProtectionDomain().getCodeSource().getLocation());
metaData.addContainerResource(webappInitializer);
AnnotationConfiguration config = new AnnotationConfiguration();
context.setConfigurations(new Configuration[] { config });
List<Handler> handlers = new ArrayList<Handler>();
handlers.add(context);
HandlerList handlerList = new HandlerList();
handlerList.setHandlers(handlers.toArray(new Handler[0]));
HandlerCollection handlerCollection = new HandlerCollection();
handlerCollection.setHandlers(new Handler[] { handlerList });
Server server = new Server(8888);
server.setHandler(handlerCollection);
server.setStopAtShutdown(true);
server.start();
server.join();
關鍵就是下面兩句:
MetaData metaData = _ctx.getMetaData();
Resource webappInitializer = Resource.newResource(WebApp.class.getProtectionDomain().getCodeSource().getLocation());
metaData.addContainerResource(webappInitializer);
由於Jetty本身代碼的原因,WebApplicationInitializer的實現必須直接實現介面,不能繼承 。
public class WebApp implements WebApplicationInitializer {
@Override
public void onStartup(final ServletContext servletContext)
throws ServletException {
context = new ();
//..省略
}
另外,把webapp的內容放入"META-INF「下,同時打包到.jar文件,設置相應的路徑為:
context.setBaseResource(Resource.newClassPathResource("META-INF/webapp"));
即可將你的webapp製作成一個可執行的.jar文件。順便說一句,Nexus似乎就是這么乾的。

熱點內容
c語言稀疏矩陣轉置矩陣 發布:2025-02-01 03:47:57 瀏覽:530
坦克世界掛機腳本有哪些 發布:2025-02-01 03:07:41 瀏覽:133
串口編程at 發布:2025-02-01 03:06:05 瀏覽:908
合資汽車配置有什麼 發布:2025-02-01 02:56:07 瀏覽:78
wifi共享精靈源碼 發布:2025-02-01 02:40:15 瀏覽:973
java軟體怎麼安裝 發布:2025-02-01 02:40:09 瀏覽:549
河北稅務局電子密碼是什麼 發布:2025-02-01 02:40:07 瀏覽:835
檢查伺服器設置是什麼意思 發布:2025-02-01 02:31:26 瀏覽:185
神偷四第四章密碼是多少 發布:2025-02-01 02:07:29 瀏覽:13
qq登錄在哪個文件夾 發布:2025-02-01 01:57:59 瀏覽:627