Jetty:配置概览-怎么配置Jetty
Jetty POJO配置
Jetty的核心組件是Plain Old Java Objects(POJOs)。配置Jetty的大部分工作就是在Jetty POJOs上的初始化、裝配和設(shè)置域的處理,你能通過以下的方式來實(shí)現(xiàn):
?1)直接通過Java代碼初始化和裝配Jetty對(duì)象。
這個(gè)在后面Embedding Jetty講。
?2)用Jetty XML配置(一個(gè)控制反轉(zhuǎn)(IoC)框架)初始化和裝配Jetty對(duì)象。
etc/jetty.xml文件是基本的Jetty XML配置文件。但有一些其他的etc/jetty-feature.xml文件包括在jetty中。
?3)用第三方庫IoC框架如Spring初始化和裝配Jetty對(duì)象作為Spring beans。
由于基本的Jetty配置通過IoC來做,因此Jetty API文檔是終于的配置參考。
Jetty Start配置文件
Jetty用以下尾隨的配置文件來初始化、注入和啟動(dòng)server:
ini文件
?Jetty Start機(jī)制用命令行。start.ini文件和不論什么start.d/*.ini文件用于提供命令行參數(shù),參數(shù)能夠是:
?------Jetty IoC(或者Spring)XML格式的XML文件
?------模塊激活。格式為:--module=name
?------屬性,格式為:name=value,用于Jetty IoC XML的參數(shù)
?------標(biāo)準(zhǔn)Java屬性文件,包括附加的啟動(dòng)屬性
?------其他start.jar選項(xiàng)(看java -jar start.jar --help)
?------一些JVM選項(xiàng)
?ini文件放在jetty.base(假設(shè)不同于jetty.home)。通過改動(dòng)它們改變配置。
mod文件
?modules/*.mod文件包括了模塊的定義,這些模塊能通過--module=name激活。每一個(gè)mod文件定義:
?------為排序和激活定義的模塊依賴
?------須要被模塊加入到classpath的庫
?------須要被模塊加入到命令行的XML文件
?------須要被激活模塊的文件
?------一個(gè)模板ini文件,當(dāng)使用--add-to-start=name激活是使用
?mod文件通常被放在jetty.home,可是能夠被jetty.base中的覆蓋。通常非常少編輯模塊文件除非大的結(jié)構(gòu)改變。
XML文件
?Jetty支持Jetty IoC和Spring IoC格式的XML文件,能夠在命令行中指定。也能夠在ini文件里指定。或者通過模塊定義加入到命令行中。XML文件實(shí)例化和注入Java對(duì)象,包括server、connectors和contexts。由于Jetty IoC XML文件常常使用properties。一些通常的配置任務(wù)不須要編輯這些XML文件就能完畢。假設(shè)XML配置被要求改變,XML文件應(yīng)該從jetty.home/etc復(fù)制到j(luò)etty.base/etc。再做改動(dòng)。
其他配置文件
服務(wù)端配置還能使用以下的文件:
Context XML文件
Jetty IoC或者Spring IoC格式的XML文件。放置在webapps目錄下。部署模塊用它來實(shí)例化和注入HttpContext實(shí)例以創(chuàng)建一個(gè)特定的context。
Property文件
Jetty配置支持標(biāo)準(zhǔn)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代碼相應(yīng)的使用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>
在實(shí)踐中。通常使用Jetty XML文件。一般放置在標(biāo)準(zhǔn)公布版本號(hào)的etc目錄中。
因此配置Jetty一般是編輯已經(jīng)存在的XML文件,改變配置的值。
配置Jetty公布版本號(hào)
通常Jetty的公布版本號(hào)。包括以下的配置:
$JETTY_HOME/start.ini
全局命令行選項(xiàng)。
從Jetty 9.1開始,start.ini的內(nèi)容被移動(dòng)到模塊的start.d/下的ini文件里。
$JETTY_HOME/start.d
模塊ini文件的目錄,用于為Jetty modules設(shè)置OPTION、parameters和配置文件。
這些modules能夠通過重命名文件或者在9.1之后使用start.jar的--enable或者--disable選項(xiàng)來激活或者停止。
$JETTY_HOME/lib/*.xml
Jetty IoC XML文件,配置個(gè)體特性;如jetty.xml(為server),jetty-http.xml,jetty-https.xml,jetty-jmx.xml。
$JETTY_HOME/webapps/*
用于部署標(biāo)準(zhǔn)WAR文件、web應(yīng)用和上下文IoC XML文件。
Jetty端口配置實(shí)例
以下是一個(gè)樣例用于測(cè)試Jetty配置機(jī)制,展示如何設(shè)置HTTP端口。為了執(zhí)行Jetty。我們通常執(zhí)行以下的命令:
>java -jar start.jarstart.d/http.ini模塊默認(rèn)被激活。當(dāng)中包括以下的行:
--module=httpjetty.port=8080這里設(shè)置了Jetty端口(jetty.port),并激活了http模塊(在modules/http.mod 文件里定義),http模塊的配置文件為etc/jetty-http.xm,在這個(gè)配置文件里,調(diào)用server的addConnector加入一個(gè)ServerConnector類的新實(shí)例,這個(gè)實(shí)例配置包括以下的行:
?<Set name="port"><Property name="jetty.port" default="80" /></Set>
這行表示使用jetty.port屬性值或者默認(rèn)值80(假設(shè)沒有配置jetty.port)調(diào)用ServerConnector.setPort(int)。jetty.port能夠配置在start.ini或者h(yuǎn)ttp.ini中,僅僅能配置一次,這里http.ini中配置了jetty.port的值為8080。因此Jetty將用8080作為連接器的端口。
假設(shè)你希望改變這個(gè)端口,那么你能夠編輯start.d/http.ini文件,改變jetty.port的值。然而這樣升級(jí)可能會(huì)導(dǎo)致問題,因此最好的做法是創(chuàng)建一個(gè)新的jetty.base目錄,配置一個(gè)新的server實(shí)例。
轉(zhuǎn)載于:https://www.cnblogs.com/ldxsuanfa/p/9963478.html
總結(jié)
以上是生活随笔為你收集整理的Jetty:配置概览-怎么配置Jetty的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 响应式css
- 下一篇: swoole 清除定时器提示no tim