日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8

發(fā)布時(shí)間:2023/12/3 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DIY墨盒是一種實(shí)驗(yàn)性墨盒,它提供了一種在OpenShift上測試不受支持的語言的方法。 它提供了最小限度的自由形式的支架,將墨盒的所有細(xì)節(jié)留給了應(yīng)用程序開發(fā)人員 。 這篇博客文章說明了結(jié)合了PostgreSQL服務(wù)的Spring Boot / Java 8 / Tomcat 8應(yīng)用程序的使用。

創(chuàng)建新的應(yīng)用程序

先決條件

在開始構(gòu)建應(yīng)用程序之前,我們需要安裝一個(gè)OpenShift免費(fèi)帳戶和客戶端工具。

步驟1:建立DIY應(yīng)用程式

要使用客戶端工具創(chuàng)建應(yīng)用程序,請鍵入以下命令:

rhc app create boot diy-0.1

此命令使用DIY盒式磁帶創(chuàng)建應(yīng)用程序引導(dǎo) ,并將存儲(chǔ)庫克隆到引導(dǎo)目錄。

步驟2:將PostgreSQL墨盒添加到應(yīng)用

我們正在創(chuàng)建的應(yīng)用程序?qū)⑹褂肞ostgreSQL數(shù)據(jù)庫,因此我們需要向該應(yīng)用程序添加適當(dāng)?shù)暮惺酱艓?#xff1a;

rhc cartridge add postgresql-9.2 --app boot

創(chuàng)建盒帶后,可以使用以下命令檢查其狀態(tài):

rhc cartridge status postgresql-9.2 --app boot

步驟3:刪除模板應(yīng)用程序源代碼

OpenShift創(chuàng)建一個(gè)可以自由刪除的模板項(xiàng)目:

git rm -rf .openshift README.md diy misc

提交更改:

git commit -am "Removed template application source code"

步驟4:從GitHub提取源代碼

git remote add upstream https://github.com/kolorobot/openshift-diy-spring-boot-sample.git git pull -s recursive -X theirs upstream master

步驟5:推送變更

基本模板隨時(shí)可以推送:

git push

初始部署(構(gòu)建和應(yīng)用程序啟動(dòng))將花費(fèi)一些時(shí)間(最多幾分鐘)。 盡管在小型Gear上啟動(dòng)Spring Boot應(yīng)用程序可能要花2分鐘以上的時(shí)間,但隨后的部署要快一些:

Tomcat started on port(s): 8080/http Started Application in 125.511 seconds

現(xiàn)在,您可以瀏覽到: http : //boot-yournamespace.rhcloud.com/manage/health ,您應(yīng)該看到:

{"status": "UP","database": "PostgreSQL","hello": 1 }

您也可以瀏覽API。 要了解您擁有哪些選項(xiàng),請導(dǎo)航至應(yīng)用程序的根目錄。 您應(yīng)該看到資源根目錄,其中包含指向可用資源的鏈接:

{"_links" : {"person" : {"href" : "http://boot-yournamespace.rhcloud.com/people{?page,size,sort}","templated" : true}} }

導(dǎo)航到http://boot-yournamespace.rhcloud.com/people應(yīng)該返回?cái)?shù)據(jù)庫中的所有人員。

第6步:添加詹金斯

使用詹金斯有一些優(yōu)勢。 其中之一是構(gòu)建是在自己的Gear中進(jìn)行的。 要使用Jenkins進(jìn)行構(gòu)建,OpenShift需要服務(wù)器和連接到應(yīng)用程序的Jenkins客戶端盒。 創(chuàng)建Jenkins應(yīng)用程序:

rhc app create ci jenkins

并將Jenkins客戶端附加到應(yīng)用程序:

rhc cartridge add jenkins-client --app boot

現(xiàn)在,您可以瀏覽到: http:// ci- .rhcloud.com并使用提供的憑據(jù)登錄。 當(dāng)您進(jìn)行下一個(gè)更改并將其推送時(shí),構(gòu)建將由Jenkins觸發(fā):

remote: Executing Jenkins build. remote: remote: You can track your build at https://ci-<namespace>.rhcloud.com/job/boot-build remote: remote: Waiting for build to schedule.........

而且,當(dāng)您觀察到構(gòu)建結(jié)果時(shí),該應(yīng)用程序在Jenkins上的啟動(dòng)速度會(huì)更快。

引擎蓋下

為什么要DIY?

可以將Spring Boot應(yīng)用程序部署到OpenShift上的Tomcat盒中。 但是目前沒有Tomcat 8和Java 8支持,因此選擇了DIY。 DIY有局限性:例如,無法縮放。 但這是嘗試和玩新事物的完美選擇。

應(yīng)用結(jié)構(gòu)

該應(yīng)用程序是常規(guī)的Spring Boot應(yīng)用程序,可以使用http://start.spring.io進(jìn)行引導(dǎo)。 使用的構(gòu)建系統(tǒng)是Maven,包裝類型是Jar。 使用Java 8的Tomcat 8。 Spring Boot默認(rèn)使用Tomcat 7,要對(duì)其進(jìn)行更改,添加了以下屬性:

<properties><tomcat.version>8.0.9</tomcat.version> </properties>

之所以選擇Maven,是因?yàn)槟壳爸荒茉贠penShift上使用Gradle 1.6。 這是由于Gradle中的錯(cuò)誤所致。 Gradle 2.2解決了此問題。

Maven settings.xml

settings.xml文件非常重要,因?yàn)樗琈aven存儲(chǔ)庫的位置: ${OPENSHIFT_DATA_DIR}/m2/repository 。

在OpenShift上,寫權(quán)限僅在$ OPENSHIFT_DATA_DIR中。

數(shù)據(jù)源配置

該應(yīng)用程序使用Spring Data REST通過REST導(dǎo)出存儲(chǔ)庫。 所需的依賴項(xiàng)是:

  • spring-boot-starter-data-jpa –存儲(chǔ)庫配置
  • spring-boot-starter-data-rest –公開基于REST的存儲(chǔ)庫
  • hsqldb –用于嵌入式數(shù)據(jù)庫支持
  • postgresql –用于PostgreSQL支持。 由于當(dāng)前OpenShift使用PostgreSQL 9.2,因此使用了適當(dāng)?shù)尿?qū)動(dòng)程序版本

通用屬性– application.properties

默認(rèn)情況下(默認(rèn)配置文件src/main/resources/application.properties ),應(yīng)用程序?qū)⑹褂们度胧紿SQLDB并使用src/main/resources/data.sql 。 數(shù)據(jù)文件可以在HSQLDB和PostrgeSQL上運(yùn)行,因此我們不需要提供特定于平臺(tái)的文件(Spring Boot可以實(shí)現(xiàn))。

  • spring.datasource.initialize = true必須使用spring.datasource.initialize = true ,因此Spring Boot會(huì)拾取數(shù)據(jù)文件并將其加載到數(shù)據(jù)庫中。
  • spring.jpa.generate-ddl = true可確保將導(dǎo)出架構(gòu)。

OpenShift屬性– application-openshift.properties

特定于OpenShift的配置( src/main/resources/application-openshift.properties )允許使用PostgreSQL服務(wù)。 該配置使用OpenShift env變量來設(shè)置連接屬性:

  • $ OPENSHIFT_POSTGRESQL_DB_HOST –用于數(shù)據(jù)庫主機(jī)
  • $ OPENSHIFT_POSTGRESQL_DB_PORT –用于數(shù)據(jù)庫端口
  • $ OPENSHIFT_APP_NAME –數(shù)據(jù)庫名稱
  • $ OPENSHIFT_POSTGRESQL_DB_USERNAME –用于數(shù)據(jù)庫用戶名
  • $ OPENSHIFT_POSTGRESQL_DB_PASSWORD –用于數(shù)據(jù)庫密碼

Spring允許直接使用${}語法在屬性中使用env變量,例如:

spring.datasource.username = ${OPENSHIFT_POSTGRESQL_DB_USERNAME}

為了讓Spring Boot激活OpenShift配置文件,將spring.profiles.active屬性在啟動(dòng)時(shí)傳遞給應(yīng)用程序: java -jar <name>.jar --spring.profiles.active=openshift 。

登錄OpenShift

日志文件將存儲(chǔ)在$ OPENSHIFT_DATA_DIR中:

logging.file=${OPENSHIFT_DATA_DIR}/logs/app.log

執(zhí)行器

執(zhí)行器的默認(rèn)管理上下文路徑為/ 。 更改為/manage ,因?yàn)镺penShift公開了/health端點(diǎn)本身,該端點(diǎn)涵蓋了Actuator的/health端點(diǎn)。

management.context-path=/manage

OpenShift action_hooks

OpenShift在部署過程中的特定位置執(zhí)行動(dòng)作掛鉤腳本文件。 所有掛鉤都放置在應(yīng)用程序存儲(chǔ)庫的.openshift/action_hooks目錄中。 文件必須是可執(zhí)行的。 在Windows中,可以在Git Bash中使用以下命令:

git update-index --chmod=+x .openshift/action_hooks/*

部署應(yīng)用程序

deploy腳本將下載Java和Maven,創(chuàng)建一些目錄并導(dǎo)出正確運(yùn)行Java 8 / Maven構(gòu)建所需的幾個(gè)環(huán)境變量。

部署的最后命令是運(yùn)行Maven目標(biāo):

mvn -s settings.xml clean install

啟動(dòng)應(yīng)用程序

deploy腳本成功完成后, target目錄將包含一個(gè)組裝了Spring Boot應(yīng)用程序的jar。 該應(yīng)用程序已啟動(dòng),并綁定到OpenShift提供的服務(wù)器地址和端口。 另外,提供了概要文件名稱,因此將創(chuàng)建有效的數(shù)據(jù)源。 運(yùn)行該應(yīng)用程序的最終命令:

nohup java -Xms384m -Xmx412m -jar target/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} --spring.profiles.active=openshift &

停止應(yīng)用

stop腳本正在尋找Java進(jìn)程,并且找到它時(shí)…您知道會(huì)發(fā)生什么。

摘要

我對(duì)“自己動(dòng)手做”墨盒對(duì)OpenShift的評(píng)估感到非常滿意。 并非所有事情都像我預(yù)期的那樣順利,主要是由于小型Gear的內(nèi)存限制。 我花了一些時(shí)間弄清楚并進(jìn)行了正確的配置。 但是,帶有DIY的OpenShift值得嘗試一小會(huì)兒。 尤其是,完全免費(fèi)開始。

參考文獻(xiàn)

  • 貫穿本文的項(xiàng)目源代碼可在GitHub上找到: https : //github.com/kolorobot/openshift-diy-spring-boot-sample 。
  • Spring Boot文檔: http : //docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cloud-deployment-openshift
  • 創(chuàng)建本文時(shí)使用了一些OpenShift參考:
    https://blog.openshift.com/run-gradle-builds-on-openshift
    https://blog.openshift.com/tips-for-creating-openshift-apps-with-windows

翻譯自: https://www.javacodegeeks.com/2014/10/spring-boot-java-8-tomcat-8-on-openshift-with-diy.html

總結(jié)

以上是生活随笔為你收集整理的带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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