下載的jetty-distribution-9.2.1.v20140609,算是目前為止的最新版本,jetty的版本比較多,而且各種版本有一定的差異,感覺這點(diǎn)不如tomcat。
1.解壓jetty到指定的目錄,該目錄就是$(JETTY_HOME)
進(jìn)入到該目錄,運(yùn)行java -jar start.jar,就可以啟動(dòng)jetty了。
2.運(yùn)行jetty的demo-base
cd ${JETTY_HOME}/demo_base 目錄,運(yùn)行 java -jar ../start.jar 就可以啟動(dòng)demo-base并看到j(luò)etty的歡迎界面了。
3.修改jetty運(yùn)行端口
(1)命令啟動(dòng)時(shí)指定端口號(hào): java -jar start.jar jetty.port=8081
(2)修改配置文件: 修改${JETTY_HOME}/start.d/http.ini中指定的端口號(hào)。
4. 部署web應(yīng)用
和tomcat相同,直接放到${JETTY_HOME}/webapps下面就行,看網(wǎng)上說還需要改什么設(shè)置,這里測(cè)試了一下,直接放上就可以啟動(dòng)。這里部署的是標(biāo)準(zhǔn)的web應(yīng)用。如果文件夾或者war包名稱是root,jetty視為根目錄。
5.熱部署
jettty可以通過監(jiān)控目錄的變化來部署應(yīng)用,如果你往目錄里面添加一個(gè)web應(yīng)用,jetty的部署管理器(DM deployment manager)就會(huì)部署一個(gè)新的上下文??梢酝ㄟ^配置文件修改相關(guān)的屬性,該文件的默認(rèn)位置是${JETTY_HOME}/etc/jetty-deploy.xml
- <span style="font-size:14px;"><?xml version="1.0"?>
- <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
- <Configure id="Server" class="org.eclipse.jetty.server.Server">
-
- <Call name="addBean">
- <Arg>
- <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager">
- <Set name="contexts">
- <Ref refid="Contexts" />
- </Set>
- <Call id="webappprovider" name="addAppProvider">
- <Arg>
- <New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
- <Set name="monitoredDirName"><Property name="jetty.home" default="." />/webapps</Set>
- <Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/etc/webdefault.xml</Set>
- <Set name="scanInterval">1</Set>
- <Set name="extractWars">true</Set>
- </New>
- </Arg>
- </Call>
- </New>
- </Arg>
- </Call>
- </Configure></span>
6.Maven和Jetty
使用嵌入式JETTY和MAVEN
MAVEN使用約定優(yōu)于配置,所以最好是使用MAVEN推薦的工程結(jié)構(gòu)??梢允褂胊rchetypes快速設(shè)置maven項(xiàng)目,現(xiàn)在為這個(gè)簡單的例子使用手工建立工程結(jié)構(gòu)。
- > mkdir JettyMavenHelloWorld
- > cd JettyMavenHelloWorld
- > mkdir -p src/main/java/org/example
windows下可以使用md命令建立多級(jí)目錄,在路徑src/main/java/org/example/下建立HelloWorld.java類,內(nèi)容如下:
- package org.example;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.ServletException;
- import java.io.IOException;
- import org.eclipse.jetty.server.Server;
- import org.eclipse.jetty.server.Request;
- import org.eclipse.jetty.server.handler.AbstractHandler;
-
- public class HelloWorld extends AbstractHandler
- {
- public void handle(String target,
- Request baseRequest,
- HttpServletRequest request,
- HttpServletResponse response)
- throws IOException, ServletException
- {
- response.setContentType("text/html;charset=utf-8");
- response.setStatus(HttpServletResponse.SC_OK);
- baseRequest.setHandled(true);
- response.getWriter().println("<h1>Hello World</h1>");
- }
-
- public static void main(String[] args) throws Exception
- {
- Server server = new Server(8080);
- server.setHandler(new HelloWorld());
-
- server.start();
- server.join();
- }
- }
建立POM描述文件,pom.xml描述文件描述了工程的名稱和依賴,使用文本編輯器在JettyMavenHelloWorld目錄下建立pom.xml,內(nèi)容如下
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.example</groupId>
- <artifactId>hello-world</artifactId>
- <version>0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>Jetty HelloWorld</name>
-
- <properties>
- <!-- Adapt this to a version found on
- http://central.maven.org/maven2/org/eclipse/jetty/jetty-maven-plugin/
- -->
- <jettyVersion>9.0.2.v20130417</jettyVersion>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-server</artifactId>
- <version>${jettyVersion}</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>1.1</version>
- <executions>
- <execution><goals><goal>java</goal></goals></execution>
- </executions>
- <configuration>
- <mainClass>org.example.HelloWorld</mainClass>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
編譯和運(yùn)行HelloWorld.java類
- > mvn clean compile exec:java
編譯成功后,可以訪問http://localhost:8080/會(huì)看到頁面中打印出HelloWorld字樣。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。