Jetty POJO配置

Jetty的核心组件是Plain Old Java Objects(POJOs);配置Jetty的大部分工作就是在Jetty POJOs上的初始化、装配和设置域的处理,你能通过以下的方式来实现:

 1)直接通过Java代码初始化和装配Jetty对象。这个在后面Embedding Jetty讲。

 2)用Jetty XML配置(一个控制反转(IoC)框架)初始化和装配Jetty对象。etc/jetty.xml文件是基本的Jetty XML配置文件,但有一些其它的etc/jetty-feature.xml文件包括在jetty中。

 3)用第三方库IoC框架如Spring初始化和装配Jetty对象作为Spring beans。

由于基本的Jetty配置通过IoC来做,因此Jetty API文档是终于的配置參考。

Jetty Start配置文件

Jetty用以下尾随的配置文件来初始化、注入和启动server:

ini文件

Jetty Start机制用命令行,start.ini文件和不论什么start.d/*.ini文件用于提供命令行參数,參数能够是:

 ------Jetty IoC(或者Spring)XML格式的XML文件

 ------模块激活,格式为:--module=name

 ------属性,格式为:name=value,用于Jetty IoC XML的參数

 ------标准Java属性文件,包括附加的启动属性

 ------其他start.jar选项(看java -jar start.jar --help)

 ------一些JVM选项

 ini文件放在jetty.base(假设不同于jetty.home),通过改动它们改变配置。

mod文件

modules/*.mod文件包括了模块的定义,这些模块能通过--module=name激活。每一个mod文件定义:

 ------为排序和激活定义的模块依赖

 ------须要被模块加入�到classpath的库

 ------须要被模块加入�到命令行的XML文件

 ------须要被激活模块的文件

 ------一个模板ini文件,当使用--add-to-start=name激活是使用

 mod文件通常被放在jetty.home,可是能够被jetty.base中的覆盖。通常非常少编辑模块文件除非大的结构改变。

XML文件

Jetty支持Jetty IoC和Spring IoC格式的XML文件,能够在命令行中指定,也能够在ini文件里指定,或者通过模块定义加入�到命令行中。XML文件实例化和注入Java对象,包含server、connectors和contexts。由于Jetty IoC XML文件常常使用properties,一些通常的配置任务不须要编辑这些XML文件就能完毕。假设XML配置被要求改变,XML文件应该从jetty.home/etc复制到jetty.base/etc,再做改动。

其他配置文件

服务端配置还能使用以下的文件:

Context XML文件

Jetty IoC或者Spring IoC格式的XML文件,放置在webapps目录下,部署模块用它来实例化和注入HttpContext实例以创建一个特定的context。

Property文件

Jetty配置支持标准Java property文件。

Jetty IoC XML格式

为了理解Jetty IoC XML格式,先看以下在Java代码中初始化和配置的样例:

  1. package org.eclipse.jetty.embedded;
  2.  
  3. import org.eclipse.jetty.server.Connector;
  4. import org.eclipse.jetty.server.Handler;
  5. import org.eclipse.jetty.server.Server;
  6. import org.eclipse.jetty.server.ServerConnector;
  7. import org.eclipse.jetty.server.handler.DefaultHandler;
  8. import org.eclipse.jetty.server.handler.HandlerCollection;
  9. import org.eclipse.jetty.servlet.ServletContextHandler;
  10. import org.eclipse.jetty.util.thread.QueuedThreadPool;
  11.  
  12. public class ExampleServer {
  13.  
  14. public static void main(String[] args) throws Exception {
  15. Server server = new Server();
  16. ServerConnector connector = new ServerConnector(server);
  17. connector.setPort(8080);
  18. server.setConnectors(new Connector[] { connector });
  19. ServletContextHandler context = new ServletContextHandler();
  20. context.setContextPath("/hello");
  21. context.addServlet(HelloServlet.class, "/");
  22. HandlerCollection handlers = new HandlerCollection();
  23. handlers.setHandlers(new Handler[] { context, new DefaultHandler() });
  24. server.setHandler(handlers);
  25. server.start();
  26. server.join();
  27. }
  28. }

以下是上面的Java代码相应的使用Jetty IoC XML初始化和配置相同的server的样例:

  1. <?xml version="1.0"?>
  2. <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
  3.  
  4. <Configure id="ExampleServer" class="org.eclipse.jetty.server.Server">
  5.  
  6. <Set name="connectors">
  7. <Array type="org.eclipse.jetty.server.Connector">
  8. <Item>
  9. <New class="org.eclipse.jetty.server.ServerConnector">
  10. <Arg><Ref refid="ExampleServer"/></Arg>
  11. <Set name="port">8080</Set>
  12. </New>
  13. </Item>
  14. </Array>
  15. </Set>
  16.  
  17. <New id="context" class="org.eclipse.jetty.servlet.ServletContextHandler">
  18. <Set name="contextPath">/hello</Set>
  19. <Call name="addServlet">
  20. <Arg>org.eclipse.jetty.embedded.HelloServlet</Arg>
  21. <Arg>/</Arg>
  22. </Call>
  23. </New>
  24.  
  25. <Set name="handler">
  26. <New class="org.eclipse.jetty.server.handler.HandlerCollection">
  27. <Set name="handlers">
  28. <Array type="org.eclipse.jetty.server.Handler">
  29. <Item>
  30. <Ref refid="context" />
  31. </Item>
  32. <Item>
  33. <New class="org.eclipse.jetty.server.handler.DefaultHandler" />
  34. </Item>
  35. </Array>
  36. </Set>
  37. </New>
  38. </Set>
  39. </Configure>

在实践中,通常使用Jetty XML文件,一般放置在标准公布版本号的etc文件夹中。因此配置Jetty一般是编辑已经存在的XML文件,改变配置的值。

配置Jetty公布版本号

通常Jetty的公布版本号,包含以下的配置:

$JETTY_HOME/start.ini

全局命令行选项。从Jetty 9.1開始,start.ini的内容被移动到模块的start.d/下的ini文件里。

$JETTY_HOME/start.d

模块ini文件的目录,用于为Jetty modules设置OPTION、parameters和配置文件。这些modules能够通过重命名文件或者在9.1之后使用start.jar的--enable或者--disable选项来激活或者停止。

$JETTY_HOME/lib/*.xml

Jetty IoC XML文件,配置个体特性;如jetty.xml(为server),jetty-http.xml,jetty-https.xml,jetty-jmx.xml。

$JETTY_HOME/webapps/*

用于部署标准WAR文件、web应用和上下文IoC XML文件。

Jettyport配置实例

以下是一个样例用于測试Jetty配置机制,展示如何设置HTTPport。为了执行Jetty,我们通常执行以下的命令:

  1. >java -jar start.jar

start.d/http.ini模块默认被激活,当中包括以下的行:

  1. --module=http
  2. jetty.port=8080

这里设置了Jetty端口(jetty.port),并激活了http模块(在modules/http.mod 文件里定义),http模块的配置文件为etc/jetty-http.xm,在这个配置文件里,调用server的addConnector加入�一个ServerConnector类的新实例,这个实例配置包括以下的行:

 <Set name="port"><Property name="jetty.port" default="80" /></Set>

这行表示使用jetty.port属性值或者默认值80(假设没有配置jetty.port)调用ServerConnector.setPort(int)。jetty.port能够配置在start.ini或者http.ini中,仅仅能配置一次,这里http.ini中配置了jetty.port的值为8080,因此Jetty将用8080作为连接器的端口。

假设你希望改变这个端口,那么你能够编辑start.d/http.ini文件,改变jetty.port的值。然而这样升级可能会导致问题,因此最好的做法是创建一个新的jetty.base目录,配置一个新的server实例。

Jetty学习二:配置概览-怎么配置Jetty的更多相关文章

  1. Jetty:配置概览-须要配置什么

    上一节讲述了怎么配置Jetty,这节将告诉你使用Jetty你须要配置些什么. 配置Server Server实例是Jetty服务端的中心协调对象,它为全部其它Jetty服务端组件提供服务和生命周期管理 ...

  2. Jetty:配置概览-怎么配置Jetty

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/liuy_98_1001/article/details/27544671 Jetty POJO配置 ...

  3. SpringBoot学习(二)-->Spring的Java配置方式

    二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...

  4. MySQL数据库学习二 MSQL安装和配置

    2.1 下载和安装MySQL软件 2.1.1 基于客户端/服务器(C/S)的数据库管理系统 服务器:MySQL数据库管理系统 客户端:操作MySQL服务器 2.1.2 MySQL的各种版本 社区版(C ...

  5. [PHP][thinkphp5] 学习二:路由、配置调用、常量定义调用

    路由: 其实TP5就是一个集多家框架所长而成的,感觉失去了自己的特色!路由这块呢类似于laravel框架!废话不说直接上码! 路由配置,类似laravel,就在route.php文件里配置路由(文件所 ...

  6. mybatis学习二 全局配置文件常用配置

    全局配置文件的详细解析可以参考mybatis的中文参考文档 1.全局配置文件中内容1.1 <transactionManager/> type 属性可取值1.1.1 JDBC,事务管理使用 ...

  7. mybatis 学习二 MyBatis简介与配置MyBatis+Spring+MySql

    1.2.2建立MySql数据库 在C:\Program Files\MySQL\MySQL Server 5.7\bin下面: 首先连接MySQL:        mysql  -u root -p ...

  8. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

  9. Jetty监控线程使用情况的配置

    Jetty监控线程使用情况配置 第一步,配置xml文件 jetty-monitor.xml 参数说明: threads: 线程池中的线程 busyThreads: 使用中的线程 idleThreads ...

随机推荐

  1. Solr的入门知识

      一.Solr的简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中.都 ...

  2. python学习day4之路

    装饰器(http://egon09.blog.51cto.com/9161406/1836763) 1.装饰器:本质是函数: 装饰器(装饰其他函数),就是为其他函数添加附加功能: 原则:1.不能修改被 ...

  3. 在Chrome浏览器中保存的密码有多安全?

    本文由 伯乐在线 - 黄利民 翻译.未经许可,禁止转载!英文出处:howtogeek.欢迎加入翻译组. [2013-08-09 更新]:最近又开始讨论“Chrome浏览器明文保存密码这个话题了,国外一 ...

  4. MDP中值函数的求解

    MDP概述   马尔科夫决策过程(Markov Decision Process)是强化学习(reinforcement learning)最基本的模型框架.它对序列化的决策过程做了很多限制.比如状态 ...

  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  6. 机器学习之路: python k近邻分类器 KNeighborsClassifier 鸢尾花分类预测

    使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/MachineLearning from sklearn.da ...

  7. DHTML参考手册

    中文DHTML参考手册 本dhtml教程由宏博内容管理系统为它的Smarty模板制作者收集的,目的是可以做出更加精美的模板.下面列出了由动态 HTML 定义的对象.DHTML中文参考手册,实用dhtm ...

  8. mysql 通过cmd 在命令行创建数据库

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...

  9. Python Django 中的STATIC_URL 设置和使用解析

    使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了.特记录下来. 关键的概念:Django中,静态资源的存 ...

  10. 使用SoapUI测试windows身份验证的webservice

    有个朋友问到用soapui测试wcf服务时如果使用windows身份验证要怎么传输凭据,于是自己试了一下.其实服务端是wcf还是webservice还是webapi都无所谓,关键是windows身份验 ...