Jetty学习二:配置概览-怎么配置Jetty
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代码中初始化和配置的样例:
package org.eclipse.jetty.embedded; import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.util.thread.QueuedThreadPool; public class ExampleServer { public static void main(String[] args) throws Exception {
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(8080);
server.setConnectors(new Connector[] { connector });
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/hello");
context.addServlet(HelloServlet.class, "/");
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[] { context, new DefaultHandler() });
server.setHandler(handlers);
server.start();
server.join();
}
}
以下是上面的Java代码相应的使用Jetty IoC XML初始化和配置相同的server的样例:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> <Configure id="ExampleServer" class="org.eclipse.jetty.server.Server"> <Set name="connectors">
<Array type="org.eclipse.jetty.server.Connector">
<Item>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg><Ref refid="ExampleServer"/></Arg>
<Set name="port">8080</Set>
</New>
</Item>
</Array>
</Set> <New id="context" class="org.eclipse.jetty.servlet.ServletContextHandler">
<Set name="contextPath">/hello</Set>
<Call name="addServlet">
<Arg>org.eclipse.jetty.embedded.HelloServlet</Arg>
<Arg>/</Arg>
</Call>
</New> <Set name="handler">
<New class="org.eclipse.jetty.server.handler.HandlerCollection">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<Ref refid="context" />
</Item>
<Item>
<New class="org.eclipse.jetty.server.handler.DefaultHandler" />
</Item>
</Array>
</Set>
</New>
</Set>
</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,我们通常执行以下的命令:
>java -jar start.jar
start.d/http.ini模块默认被激活,当中包括以下的行:
--module=http
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的更多相关文章
- Jetty:配置概览-须要配置什么
上一节讲述了怎么配置Jetty,这节将告诉你使用Jetty你须要配置些什么. 配置Server Server实例是Jetty服务端的中心协调对象,它为全部其它Jetty服务端组件提供服务和生命周期管理 ...
- Jetty:配置概览-怎么配置Jetty
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/liuy_98_1001/article/details/27544671 Jetty POJO配置 ...
- SpringBoot学习(二)-->Spring的Java配置方式
二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...
- MySQL数据库学习二 MSQL安装和配置
2.1 下载和安装MySQL软件 2.1.1 基于客户端/服务器(C/S)的数据库管理系统 服务器:MySQL数据库管理系统 客户端:操作MySQL服务器 2.1.2 MySQL的各种版本 社区版(C ...
- [PHP][thinkphp5] 学习二:路由、配置调用、常量定义调用
路由: 其实TP5就是一个集多家框架所长而成的,感觉失去了自己的特色!路由这块呢类似于laravel框架!废话不说直接上码! 路由配置,类似laravel,就在route.php文件里配置路由(文件所 ...
- mybatis学习二 全局配置文件常用配置
全局配置文件的详细解析可以参考mybatis的中文参考文档 1.全局配置文件中内容1.1 <transactionManager/> type 属性可取值1.1.1 JDBC,事务管理使用 ...
- mybatis 学习二 MyBatis简介与配置MyBatis+Spring+MySql
1.2.2建立MySql数据库 在C:\Program Files\MySQL\MySQL Server 5.7\bin下面: 首先连接MySQL: mysql -u root -p ...
- 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署
阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...
- Jetty监控线程使用情况的配置
Jetty监控线程使用情况配置 第一步,配置xml文件 jetty-monitor.xml 参数说明: threads: 线程池中的线程 busyThreads: 使用中的线程 idleThreads ...
随机推荐
- javascript json字符串转json对象方法
/* * @method 将拼接好字符串格式的json 转成json对象 * @param jsonData param fomart: * var jsonData = "{name1:' ...
- 【LOJ】#2275. 「JXOI2017」颜色
题解 我们枚举右端点判断合法的左端点有哪些 首先,记录一下右端点右边的点的pre,也就是这个数字前一个出现的位置,取所有小于枚举右端点r的值中最大的一个做为l,用优先队列维护即可,[l + 1,r]就 ...
- wow.js中各种特效对应的类名(滚动效果)
1.wow.js依赖于animate.css,首先在头部引用animate.css或者animate.min.css. <link rel="stylesheet" type ...
- Android中Xposed框架篇-微信实现本地视频发布到朋友圈功能
微信非常庞大,还好有一些强大的工具,下面就来总结收获的知识. 一.使用adb shell dumpsys activity top命令快速定位页面 二.使用Jadx进行方法跟踪时候如果发现没有结果,可 ...
- 神经网络一(用tensorflow搭建简单的神经网络并可视化)
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #创建一个input数据,-1到1之间300个数, ...
- C# 动态类型与动态编译简介
关于C#的动态类型与动态编译的简介,主要是一个Demo. 动态类型 关键字: dynamic 这里有详细的介绍:[C#基础知识系列]专题十七:深入理解动态类型 动态类型的应用场景 可以减少强制转换(强 ...
- 基于spring-boot的应用程序的单元测试方案
概述 本文主要介绍如何对基于spring-boot的web应用编写单元测试.集成测试的代码. 此类应用的架构图一般如下所示: 我们项目的程序,对应到上图中的web应用部分.这部分一般分为Control ...
- 线程池--ThreadPoolExecutor
线程池的实现原理 1)如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意,执行这一步骤 需要获取全局锁). 2)如果运行的线程等于或多于corePoolSize,则将任务加入 ...
- 在qemu环境中用gdb调试Linux内核
简介 对用户态进程,利用gdb调试代码是很方便的手段.而对于内核态的问题,可以利用crash等工具基于coredump文件进行调试.其实我们也可以利用一些手段对Linux内核代码进行gdb调试,qem ...
- IdentityServer4之JWT签名(RSA加密证书)及验签
一.前言 在IdentityServer4中有两种令牌,一个是JWT和Reference Token,在IDS4中默认用的是JWT,那么这两者有什么区别呢? 二.JWT与Reference Token ...