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.jarstart.d/http.ini模塊默認被激活。當中包括以下的行:
--module=httpjetty.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實例。
轉載于:https://www.cnblogs.com/ldxsuanfa/p/9963478.html
總結
以上是生活随笔為你收集整理的Jetty:配置概览-怎么配置Jetty的全部內容,希望文章能夠幫你解決所遇到的問題。