1. 程式人生 > >Jetty嵌入式web的war的釋出方法[張振華-Jack]

Jetty嵌入式web的war的釋出方法[張振華-Jack]


一:直接war的釋出啟動方式:
1)Runner的類內容如下:注意一定要在根目錄,但是個人覺得不一定 importjava.io.File; importjava.net.URL; importjava.security.ProtectionDomain; importorg.eclipse.jetty.server.Server; importorg.eclipse.jetty.server.nio.NetworkTrafficSelectChannelConnector; importorg.eclipse.jetty.util.thread.QueuedThreadPool; import
org.eclipse.jetty.webapp.WebAppContext; publicclassRunner { publicstaticvoidmain(String[] args)throwsException {                      String jettyVersion = Server.getVersion(); finalintport = Integer.parseInt(System.getProperty("port","8088"));                      ProtectionDomain protectionDomain = Runner.
class.getProtectionDomain();                      URL location = protectionDomain.getCodeSource().getLocation();                      String warFile = location.toExternalForm();                      String currentDir =newFile(location.getPath()).getParent();                      File workDir =newFile(currentDir,
"work");                      System.out.println("##########jettyVersion="+ jettyVersion);                      System.out.println("##########port="+ port);                      System.out.println("##########currentDir="+ currentDir);                      System.out.println("##########workDir="+ workDir);                      System.out.println("##########warFile="+ warFile);                      WebAppContext webapp =newWebAppContext();                      webapp.setContextPath("/"); // webapp.setResourceBase(".");                      webapp.setTempDirectory(workDir); // webapp.setClassLoader(Thread.currentThread().getContextClassLoader());                      webapp.setWar(warFile);                      NetworkTrafficSelectChannelConnector connector =newNetworkTrafficSelectChannelConnector();                      connector.setPort(port);                      connector.setMaxIdleTime(60000);                      connector.setRequestHeaderSize(10240);                      connector.setSoLingerTime(-1);                      connector.setThreadPool(newQueuedThreadPool(1024));                      Server server =newServer();                      server.addConnector(connector);                      server.setHandler(webapp);                      server.start();                      server.join();               }        } 2)執行方式:           1:java -jar tdt-web-0.0.1-SNAPSHOT-fat.war           2:mvn jetty:run;           3:直接用執行上面的類的main方法,但是要注意war的路徑和lib的路徑; 3)需要注意的是將所有依賴的jar加進去;                 <dependency> <groupId>org.eclipse.jetty.orbit</groupId> <artifactId>javax.servlet</artifactId> <version>3.0.0.v201112011016</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty.orbit</groupId> <artifactId>org.apache.jasper.glassfish</artifactId> <version>2.2.2.v201112011158</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty.orbit</groupId> <artifactId>javax.el</artifactId> <version>2.2.0.v201108011116</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> 4)war的打包方式如下:                <!--jetty--> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppSourceDirectory>${basedir}/src/webapp</webAppSourceDirectory> <webAppConfig> <contextPath>/</contextPath> <descriptor>${basedir}/src/webapp/WEB-INF/web.xml</descriptor> </webAppConfig> <classesDirectory>${basedir}/target/classes</classesDirectory> <connectors> <connectorimplementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8088</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> </configuration> </plugin> <!-- insertjettyclass(compiler) --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <archive> <manifest> <mainClass>Runner</mainClass> <!-- <addClasspath>true</addClasspath> --> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>main-class-placement</id> <phase>prepare-package</phase> <configuration> <target> <move todir="${project.build.directory}/${project.artifactId}-${project.version}-${package.environment}/"> <filesetdir="${project.build.directory}/classes/"

相關推薦

Jetty嵌入式web的war的釋出方法[-Jack]

一:直接war的釋出啟動方式: 1)Runner的類內容如下:注意一定要在根目錄,但是個人覺得不一定 importjava.io.File; importjava.net.URL; import

Linux下Java執行緒詳細監控和其dump的分析使用----分析Java效能瓶頸[-Jack]

作者:張振華(Jack) 這裡對linux下、sun(oracle) JDK的執行緒資源佔用問題的查詢步驟做一個小結; linux環境下,當發現java程序佔用CPU資源很高,且又要想更進一步

【屌絲程式的口才逆襲演講稿50篇】第十篇:程式設計師們請看看外面的世界吧【.Jack

演講稿主題:《程式設計師們請看看外面的世界吧》                    --作者:張振華Jack     大家都知道我是一個程式設計師,幾年下來認識了最典型的三個程式設計師。    

《Spring Data JPA從入門到精通》 and《Spring Data JPA 實戰》 .Jack --我的書

《Spring Data JPA從入門到精通》購買地址:本書初衷隨著Java技術和微服務技術逐漸廣泛應用,Spring Cloud、Spring Boot逐漸統一Java的框架江湖。市場上的ORM框架也逐漸被人重視起來。Spring Data逐漸走入Java開發者的視野,被很

【屌絲程式的口才逆襲演講稿50篇】第十二篇:世界上最快的捷徑【.Jack

演講稿主題:《世界上最快的捷徑》                    --作者:張振華Jack 給大家講個故事。         有一天正好猴子和鸚鵡坐同一架飛機去旅行。猴子向空姐說:“請來一瓶礦泉

【屌絲程式的口才逆襲演講稿50篇】第六篇:兩個年輕人掙錢的故事 【.Jack

騏驥一躍,不能十步。駑馬十駕,功在不捨。讓我們一起來見證堅持的力量。不知道自己能堅持多久,但我相信堅持就是力量。Java高階交流群:240619787; 演講稿主題:《兩個年輕人掙錢的故事》

,一個想要勝天半子的男人

好處 折騰 變化 img 很快 .cn 描述 技術 保險業 姚振華,一個想要勝天半子的男人 2017-05-19 11:55         本文來源公眾號:投行大師兄(ID:touhangdashixiong)   最近,一則關於前海人壽向某會請求恢復萬能險業務的

嵌入式stm32學習方法

方法 學習交流 inter 規律 rup reset 學習 key 串口   stm32方法總結   相信很多人學習單片機都是從51開始的,而相對於51來說,stm32的代碼量明顯增加,並且了解到一定程度就知道stm32的代碼不可能都自己寫(因為代碼量不允許),因此學習方向

webservice服務釋出方法之一

環境:win7,eclipse-mars,jdk1.7.0_79 新建一個java工程,寫一個介面HelloWS,一個類HelloWSImpl實現介面HelloWS, 寫一個方法sayHello,此方法就是需要向外界提供的服務,如下圖。 然後在空白處右鍵新建 web serv

分享《大數據治理與服務》+PDF+

正版 ges http fff com cto water 分享圖片 資料 下載:https://pan.baidu.com/s/1GAdRoRkGAHbB6InFF4wyDw 更多資料學習:http://blog.51cto.com/14087171 版權說明:本人無版權

城市精神!51666人與一方同在 他們也來了

11月29日訊息,@北京商報從度小滿金融人士處獲悉,百度正式拿到准許經營證券期貨的許可證。據許可證顯示,機構名稱為北京百度百盈科技有限公司(下稱“百度百盈”),證券期貨業務經營範圍為基金銷售。而今年8月22日,根據北京證監局官網顯示,證監局已核准百度百盈證券投資基金銷售業務資格。 企查查資訊顯示,百度百盈成

機器學習導論():概率PCA

前言 這個筆記是北大那位老師課程的學習筆記,講的概念淺顯易懂,非常有利於我們掌握基本的概念,從而掌握相關的技術。 basic concepts PCA: X

機器學習導論():EM演算法

#前言 這個筆記是北大那位老師課程的學習筆記,講的概念淺顯易懂,非常有利於我們掌握基本的概念,從而掌握相關的技術。 #basic concepts EM演算法的核心是,首先假設模型符合什麼分佈,然後計算相關引數,再根據計算出的結果,重新劃分樣本分佈,然後再計算相關引數,直到收斂為止。 公式證

機器學習導論():基本概念

前言 這個筆記是北大那位老師課程的學習筆記,講的概念淺顯易懂,非常有利於我們掌握基本的概念,從而掌握相關的技術。 正文 Data Mining 是半自動化的 Machine Learning 是自動化的。 Michal Jordon。 ML:A f

機器學習導論():多項式分佈

前言 這個筆記是北大那位老師課程的學習筆記,講的概念淺顯易懂,非常有利於我們掌握基本的概念,從而掌握相關的技術。 基本概念 兩個矩陣相似:兩個矩陣特徵值一樣。 兩個矩陣合同:矩一樣,就是個數一樣。 #高斯分佈的特性 知道μ和σ \mu 和\sigmaμ和σ就可以

機器學習導論():正定核應用

前言 這個筆記是北大那位老師課程的學習筆記,講的概念淺顯易懂,非常有利於我們掌握基本的概念,從而掌握相關的技術。 basic concepts If a function is positive definite,then matrix is P.S.D. x

新手必看是嵌入式系統學習方法

很多新手都問過嵌入式系統學習方法,好的學習方法可以事半功倍,學習嵌入式系統,掌握了好的學習方法,自然可以水到渠成。本篇文章就來說說嵌入式系統學習方法,新手必看哦!  第一,學習基本的裸機程式設計  對於學硬體的人而言,必須先對硬體的基本使用方法有感性的認識,更必須深刻認識該硬體的控制方式,如果一開始就學lin

:“甲骨文開放雲基礎架構從建設到敏捷運維” – 運維派

由工業和資訊化部指導,中國資訊通訊研究院主辦,業界知名組織雲端計算開源產業聯盟(OSCAR)承辦的2017全球雲端計算開源大會於4月19日-20日在北京國家會議中心順利召開。本文為本屆大會嘉賓分享的大會演講速記內容,敬請瀏覽。 嘉賓介紹:張國華 公司職務:甲骨文資深系統架構師 大會演講速記 今

Python專案打包釋出方法

        目前python打包工具有多個,目前比較好用的為pyinstaller,該工具可以支援在window和linux下使用。       在windows下,大小為幾十K的原始檔打包成exe檔案,可能為幾十

列印/傳真嵌入式開發--志龍的專欄

VB6.0中,通訊控制元件在“工程” ――“部件”,選中 Microsoft Comm Control6.0 其檔案為 mscomm32.ocx 該控制元件唯一的一個事件就是OnComm事件。隨著CommEvent屬性值的變化,其後的Case程式程式碼便被引發。如此就是自動檢