日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Docker容器中的WildFly Swarm JAX-RS微服务

發(fā)布時間:2023/12/3 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker容器中的WildFly Swarm JAX-RS微服务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這些天,每個人都在談?wù)撐⒎?wù)。 關(guān)于如何在企業(yè)級應(yīng)用這些原則,有很多意見和想法,而很少有示例。 可以肯定的是,即使在幾天前的會議上,我也很少發(fā)現(xiàn)有人在生產(chǎn)環(huán)境中運(yùn)行Docker容器。 當(dāng)我問起初次體驗以及是否有人玩過時,至少舉起了合理的手。 并查看運(yùn)行容器化基礎(chǔ)結(jié)構(gòu)所需的所有操作級別知識(操作系統(tǒng),網(wǎng)絡(luò)等),我可以理解所有這些。 要使Enterprise Java開發(fā)人員更容易做到,必須做很多事情。 實際上,我們可以使用一些方法來使用日常工具,并將它們與最新技術(shù)結(jié)合起來以進(jìn)行自我教育。 其中之一是WildFly Swarm,它是一種輕量級且簡便的方法來構(gòu)建完全包含的Java EE應(yīng)用程序。 這篇博客文章將向您展示如何在Docker上本地運(yùn)行它。

什么是WildFly Swarm?

WildFly是一款輕巧,靈活,功能豐富且符合Java EE 7的應(yīng)用程序服務(wù)器。 WildFly 9甚至引入了僅27MB的Servlet發(fā)行版 。 兩者都是Java Enterprise項目的堅實基礎(chǔ)。 最新版本的WildFly 10.CR2將成為Red Hat的下一個受支持的Java EE服務(wù)器產(chǎn)品Enterprise Application Platform 7的基礎(chǔ)。

WildFly Swarm擺脫了各種概要文件的靜態(tài)捆綁,使您可以構(gòu)建自己的定制功能Java EE運(yùn)行時。 但是,WildFly Swarm不僅涉及定制的應(yīng)用程序服務(wù)器,而且還涉及到定制的應(yīng)用程序服務(wù)器。 它是關(guān)于將包含相關(guān)應(yīng)用程序服務(wù)器組件的應(yīng)用程序捆綁在一個可執(zhí)行文件中。 這也稱為“ fat-jar”,可以簡單地使用java -jar運(yùn)行。 當(dāng)我們談?wù)撍鼤r:微服務(wù)通常將完整的應(yīng)用程序及其堆棧帶入其中,因此您可以將每個WildFly Swarm應(yīng)用程序視為一個獨(dú)立且完全包含的微服務(wù)。

將Java EE應(yīng)用程序變成胖子

通過添加Maven依賴項和插件,可以將Java EE應(yīng)用程序打包為WildFly Swarm胖子罐。 可以從https://github.com/myfear/WildFlySwarmDockerSample/獲得該簡單JAX-RS示例的完整源代碼。 該應(yīng)用程序本身公開了一個端點(diǎn)/ rs / customer,該端點(diǎn)僅輸出一些文本。 真正的魔力被放入pom.xml文件中。 我們現(xiàn)在正在經(jīng)歷。

首先, 對Java EE 7 API的依賴關(guān)系 ,然后是

<dependency><groupId>org.wildfly.swarm</groupId><artifactId>wildfly-swarm-jaxrs</artifactId><version>${version.wildfly-swarm}</version></dependency>

WildFly Swarm插件負(fù)責(zé)應(yīng)用程序的打包:

<plugin><groupId>org.wildfly.swarm</groupId><artifactId>wildfly-swarm-plugin</artifactId><version>${version.wildfly-swarm}</version><executions><execution><goals><goal>package</goal></goals></execution></executions></plugin>

這就是所有魔術(shù)。 您可以使用“ mvn軟件包”來構(gòu)建應(yīng)用程序。 您將在目標(biāo)文件夾中找到war文件本身以及一個附加附件“ swarm-sample-1.0-SNAPSHOT-swarm.jar”。 如果打開該文件夾,則可以找到一個m2repo文件夾,其中包含所有從屬庫,并且您的應(yīng)用程序本身捆綁在_bootstrap \文件夾中。 您可以從maven項目中的命令行直接運(yùn)行它(Windows用戶可能會遇到此問題 ):

java -jar target/swarm-1.0-SNAPSHOT-swarm.jar

將瀏覽器重定向到http:// localhost:8080 / rs / customer將向您顯示一些json

{"text":"WildFly Swarm Docker Application on OpenShift at http://192.168.99.100:32773/rs/ - Hostname: 093ca3279a43"}

Docker化WildFly Swarm

WildFly Swarm項目在github上有一些Docker示例。 大多數(shù)情況下,bash腳本和一些包裝器可以對您的項目進(jìn)行docker化。 但是還有更好的東西:Roland Huss的Docker Maven插件 。 我之前已經(jīng)使用過幾次,并且在本示例中也使用了它。 您所要做的就是將插件添加到pom.xml中 。

<plugin><groupId>org.jolokia</groupId><artifactId>docker-maven-plugin</artifactId><version>${docker.maven.plugin.version}</version> </plugin>

配置有點(diǎn)棘手。 (感謝Roland在過去幾天給我的所有電子郵件支持!)。 首先,基礎(chǔ)很簡單。 將圖像添加到插件配置中,并相應(yīng)地命名。 我繼承自jboss / jdk-base:8,圖像獲得名稱并標(biāo)記為myfear / swarm-sample:latest( 第77ff行 )。 構(gòu)建配置公開端口8080并定義相關(guān)入口點(diǎn) (使用-jar參數(shù)啟動java的命令)。 圖像的組裝需要包括項目附件 ,并將附件作為依賴項 。 確保輸出服務(wù)映射和basedir與入口點(diǎn)參數(shù)匹配。

讓我們對其進(jìn)行測試

確保您的主機(jī)上具有docker-machine設(shè)置。 創(chuàng)建一個開發(fā)機(jī)器并相應(yīng)地配置環(huán)境變量。 現(xiàn)在您可以運(yùn)行:

mvn clean install docker:build docker:start -Ddocker.follow

注: 10.3.5 Docker Maven插件中的錯誤實際上現(xiàn)在無法立即提取基本映像。您需要在執(zhí)行maven運(yùn)行之前手動執(zhí)行'docker pull jboss / jdk-base:8'。)

將構(gòu)建該項目,并從映像啟動一個容器。

恭喜,您現(xiàn)在在本地Docker實例中有一個正在運(yùn)行的Java EE微服務(wù)。 下一個博客實際上將研究如何獲取此圖像并將其在OpenShift Origin上運(yùn)行并根據(jù)您的需求進(jìn)行縮放。

翻譯自: https://www.javacodegeeks.com/2015/10/a-wildfly-swarm-jax-rs-microservice-in-a-docker-container.html

總結(jié)

以上是生活随笔為你收集整理的Docker容器中的WildFly Swarm JAX-RS微服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。