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文件。
Jetty端口配置实例
以下是一个样例用于測试Jetty配置机制,展示如何设置HTTP端口。为了执行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
Jetty POJO配置 Jetty的核心组件是Plain Old Java Objects(POJOs):配置Jetty的大部分工作就是在Jetty POJOs上的初始化.装配和设置域的处理,你能通 ...
- 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署
阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...
- linux中Jetty的安装和配置
Jetty Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开 ...
- Jetty容器集群配置Session存储到MySQL、MongoDB
在Web开发中,Session表示HTTP服务器与客户端(例如浏览器)的"会话",每个客户端会有其对应的Session保存在服务器端,通常用来保存和客户端关联的一些信息,例如是否登 ...
- jetty之安装,配置,部署,运行
上篇文章中详解了关于什么是jetty,后续文章主要是介绍jetty的使用.本章介绍jetty环境的配置及部署war包. 1. 安装 1. 先下载一个jetty的压缩包,下载地址:http://www. ...
- Idea使用Maven搭建SpringMVC的HelloSpringMvc并配置插件Maven和Jetty
这篇博文只是纯粹的搭建一个SpringMVC的项目, 并不会涉及里面配置文件该写些什么. 只是纯粹的搭建一个初始的Hello SpringMVC的项目. 废话不多说,上图. 1. 打开IDEA 并且 ...
- Jetty的安装和配置
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可以将 ...
- Jetty入门(1-1)Jetty入门教程
一.Jetty是什么? 1.Jetty 是一个Java语言编写的,开源的Servlet容器和应用服务器. Jetty 极度轻量级.高便携性.功能强大.灵活和扩展性好,而且支持各种技术如SPDY.Web ...
随机推荐
- day05<Java语言基础--数组>
Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...
- ios 开发之本地推送
网络推送可能被人最为重视,但是本地推送有时候项目中也会运用到: 闲话少叙,代码如下: 1.添加根视图 self.window.rootViewController = [[UINavigationCo ...
- 端口占用处理(Windows)
1. netstat -ano 看看 443端口被占用没 ,一般是本地地址加上端口号,那个端口号就是你要找的,同时最后一列是PID,即进程号. (常用的软件有虚拟机.VisualSVNServer)2 ...
- python2.0_s12_day19_前端模版使用
Django中引用bootstrap实现在前端可以创建客户信息,可以修改客户信息我们需要设计一个前端用户交互系统.我们在设计之前,讨论一些需求:前端实现:1. 不同角色的用户,看到的东西是不一样的 销 ...
- hex()
hex() 用于将十进制数字转换成十六进制 In [1]: hex(10) Out[1]: '0xa' In [2]: hex(11) Out[2]: '0xb'
- thinkjs——moment.js之前后台引入问题
前言: 工作中时常会遇见处理时间格式化问题:简言之就是将存在数据库中的时间戳的数字以“YYYY-MM-DD HH:mm:ss”格式展现出来. 过程: 1.在html文件中,通常是引入moment.js ...
- 高性能LAMP程序设计
高性能LAMP程序设计 原文地址: http://www.infoq.com/cn/presentations/fcq-high-performance-lamp-programming 演讲稿: h ...
- ios 读取各种类型文件
1.如何读取UTF-8编码的文本文件? 2.如何读取GB2312(中文)的文本文件? 3.如何读取其它编码文件? 首先解决第一个问题, 1.如何读取UTF-8编码的文本文件? NSString *fi ...
- webpack.optimize.CommonsChunkPlugin
打包第三方控件:比如jquery,angular,bootstrap.... const CommonsChunkPlugin = require("webpack/lib/optimize ...
- LINUX IPTABLES 防火墙配置
0.iptables(ACL)的匹配原则: 与cisco等一致,从上到下依次匹配. 1.iptables的基本用法:. (1)命令格式 iptables [–ttable] command [mat ...