文档章节

JETTY9(9.2.1)入门学习

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:44
字数 818
阅读 35
收藏 0

原文:http://blog.csdn.net/guoyankun/article/details/38319689

下载的jetty-distribution-9.2.1.v20150310,算是目前为止的最新版本,jetty的版本比较多,而且各种版本有一定的差异,感觉这点不如tomcat。

1.解压jetty到指定的目录,该目录就是$(JETTY_HOME)

   进入到该目录,运行java -jar start.jar,就可以启动jetty了。

2.运行jetty的demo-base

  cd ${JETTY_HOME}/demo_base 目录,运行 java -jar ../start.jar 就可以启动demo-base并看到jetty的欢迎界面了。

     PS:在9.1.0之后,Jetty不再部署任何demo web应用,因此要看演示,你需要从demo-base文件夹启动Jetty,

3.修改jetty运行端口

   (1)命令启动时指定端口号: java -jar start.jar jetty.port=8081

   (2)修改配置文件: 修改${JETTY_HOME}/start.d/http.ini中指定的端口号。


4. 部署web应用

    和tomcat相同,直接放到${JETTY_HOME}/webapps下面就行,看网上说还需要改什么设置,这里测试了一下,直接放上就可以启动。这里部署的是标准的web应用。如果文件夹或者war包名称是root,jetty视为根目录。


5.热部署

jettty可以通过监控目录的变化来部署应用,如果你往目录里面添加一个web应用,jetty的部署管理器(DM deployment manager)就会部署一个新的上下文。可以通过配置文件修改相关的属性,该文件的默认位置是${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使用约定优于配置,所以最好是使用MAVEN推荐的工程结构。可以使用archetypes快速设置maven项目,现在为这个简单的例子使用手工建立工程结构。

> mkdir JettyMavenHelloWorld
> cd JettyMavenHelloWorld
> mkdir -p src/main/java/org/example

如果在windows下可以使用md命令建立多级目录,在路径src/main/java/org/example/下建立HelloWorld.java类,内容如下:

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,内容如下

<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>
编译和运行HelloWorld.java类
> mvn clean compile exec:java

编译成功后,可以访问http://localhost:8080/会看到页面中打印出HelloWorld字样。



本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/45068475

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
jetty9怎么集成进eclipse里

jetty9 eclipse4.3 runjettyrun只支持到jetty8 怎么在eclipse里集成jetty9

jack_jones
2013/06/28
2.4K
1
eclipse里怎么调用jetty9?

下载了jetty9 在eclipse里创建了web项目,怎么调用jetty9启动web项目呢,怎么设置?

jack_jones
2013/08/17
2.1K
2
FreeNAS 9.2.1发布!

FreeNAS 9.2.1发布!下载地址: http://download.freenas.org/9.2.1/RELEASE/x64/FreeNAS-9.2.1-RELEASE-x64.iso http://download.freenas.org/9.2.1/RELEASE/x64/FreeNAS-9.2.1-RELEASE-x6......

mmbug
2014/02/08
4.6K
0
jetty9稳定版出来了,改造jfinal各种错误啊

@JFinal 你好,想跟你请教个问题: jetty9稳定版出来了,改造jfinal各种错误啊 有人改造过的么。jetty9变了不少东西

callmeHEN
2013/09/12
2.2K
4
网页多人聊天工具--webChat

webChat 是使用 websocket 实现的网页多人聊天 前端使用html5 + thymeleaf,后台使用springmvc实现 默认编译版本是jdk1.8,因为使用了1.8新增的语法,所以如果要降版本,需要修改部分源代码 ...

愚_者
2015/02/12
7.1K
8

没有更多内容

加载失败,请刷新页面

加载更多

02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
9
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
8
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
9
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
7
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部