新建并部署Java EE 7應用
7.新建并部署Java EE 7應用
現在你應該學了很多鏡像、容器以及將他們連接在一起的東西,是時候學習不同的部署選項了。讓我們從Java EE 7 sample applications開始。 Java EE 7 sample applications是一個很普通的Java EE 7應用案例,也是一個絕好的學習開始。
7.1新建應用
我們需要先新建應用。
1. 克隆倉庫
git clone
from Internet
https://github.com/javaee-samp ... e.git
From Instructor
git clone dockeradmin@classroom.exampl e.com:10080/root/javaee7-simple-sample.git" kesrc=">dockeradmin@classroom.exampl e.com:10080/root/javaee7-simple-sample.git" data-ke-src=">dockeradmin@classroom.exampl</a> e.com:10080/root/javaee7-simple-sample.git" rel="nofollow" target="_blank">http://root:dockeradmin%40clas ... e.git
2. 新建應用
cd javaee7-simple-sample/
#From Internet
mvn clean package
#From Instructor
curl http://classroom.example.com:8 ... s.xml -o settings.xml
mvn -s settings.xml clean package
7.2啟動應用服務器
新建文件夾,放置部署并且給寫權限
mkdir deployments
chmod a+w deployments
啟動WildFly 服務器:
From Internet
docker run --name wildfly -d -p 8080:8080 -vpwd/deployments:/opt/jboss/wildfly/standalone/deployments/:rw jboss/wildfly
From Instructor
docker run --name wildfly -d -p 8080:8080 -vpwd/deployments:/opt/jboss/wildfly/standalone/deployments/:rw classroom.example.com:5000/wildfly
注意:Windows用戶需要做下小調整,要復制部署到“c:/Users/<USER>/deployments ”,因為boot2docker 的路徑映射在Windows上不一樣。請輸入如下的參數命令:
'docker run --name wildfly -d -p 8080:8080 -v /c/Users/meisele/deployments:/opt/jboss/wildfly/standalone/deployments/:rw [classroom.example.com:5000|jboss]/wildfly'
這個命令會啟動一個名叫” wildfly”的容器。
-v參數會映射一條從主機到容器的參數。這將會是放置部署的路徑。rw參數保證了Docker容器能往里面寫東西。
檢查日志,確認服務器啟動了。
docker logs -f wildfly
在瀏覽器里訪問 http://dockerhost:8080 確認實例正在運行。
現在部署應用的準備工作做好了。
7.3配置JBoss Developer Studio
啟動JBoss Developer Studio
1. 選擇’Servers’按鈕,新建server adapter
圖10:Server Adapter
2. 分配已存在的或新建一個WildFly 9.0.0 runtime (修改過的屬性已高亮。)
圖11:WildFly Runtime屬性
3. 如果需要創建新的runtime,請選擇WildFly 9.0.1的路徑:
圖12: WildFly 9.0.1.Final Runtime
點擊’finish’按鈕。
4. 雙擊選擇的server配置server屬性
圖13:Server屬性
主機名指定為’dockerhost’。左邊兩個圓圈里的屬性自動從以前的會話繼承。右邊兩個圓圈里的屬性必須取消以保證deployment scanner和server的一致性。
5. 在server編輯器的部署頁面指定一個自定義的部署路徑
圖14:自定義的部署路徑
6. 右鍵新創建的server adapter并點擊’start’
圖15:啟動server
7.4使用共享卷部署應用
1.使用Import → Existing Maven Projects導入javaee7-simple-sample應用的源碼
2.右鍵這個項目,選擇’ Run on Server’并選擇之前創建的server。
這個項目會運行起來并展示應用的啟動頁面
圖16:啟動server
恭喜!
你已經在JBoss Developer Studio部署了第一個跑在Docker容器上的應用WildFly。
停止WildFly容器的命令:
docker stop wildfly
7.5使用CLI部署應用
命令行接口(CLI)是一個連接實例的工具,它能從命令行環境管理所有的任務。你能使用CLI管理的任務如下:
1. 在standalone/Domain模式下部署/卸載web應用。
2. 在runtime上查看所有部署的應用的信息。
3. 在Standalone/Domain模式下啟動、停止以及重啟節點。
4. 添加/刪除子系統到server上。
現在我們使用CLI來部署運行在Docker容器環境的javaee7-simple-sample到WildFly上。
1. CLI需要本地安裝,成為WildFly的一部分,在之前下載WildFly的時候應該有提供。解壓縮你的下載包到一個目錄(例如:/Users /<USER>/tools/)。系統會創建一個wildfly-9.0.0.Final的文件夾。這個文件夾的路徑會被變 量$WIDLFY_HOME引用。確保增加/Users/<USER>/tools/wildfly-9.0.0.Final/bin到你 的$path環境變量。
2. 以固定的端口映射運行“wildfly-management”鏡像,如4.5.2固定端口映射(這里應該是一個超鏈接)描述的那樣。
3. 運行jboss-cli命令連接到WildFly實例。
啟動WildFly server如下:
From Internet
docker run --name wildfly-managed -d -p 8080:8080 -p 9990:9990 rafabene/wildfly-admin
From Instructor
docker run --name wildfly-managed -d -p 8080:8080 -p 9990:9990 classroom.example.com:5000/wildfly-management
如下命令會啟動一個叫做” wildfly-managed”的容器
jboss-cli.sh --controller=dockerhost:9990 -u=admin -p=docker#admin -c
如下命令展示輸出結果
[standalone@dockerhost:9990 /]
部署應用如下:
deploy <javaee7-simple-sample PATH>target/javaee7-simple-sample-1.10.war --force
現在你已經成功的使用CLI遠程部署運行在docker容器環境的javaee7-simple-sample到WildFly上面。
7.6使用web控制臺部署應用
WildFly有個基于web的管理控制臺。它和JBoss Developer Tools以及CLI依賴的是同一套API。這個web控制臺提供了一種方便易用的方式來管理WildFly實例。對于一個docker容器,它需要被明 確激活,正如 4.5Enabling WildFly Administration(這里應該是一個超鏈接)里描述的那樣。一旦激活,它就能通過 http://dockerhost:9990 被訪問。
圖17:WildFly web控制臺
用戶名和密碼信息在圖5里展示。
注意:你或許想停止并刪除在WildFly里運行的容器。這條命令可以做到:docker ps -a | grep wildfly | awk '{print $1}' | xargs docker rm –f
啟動一個新的容器的命令為:docker run -d --name wildfly -p 8080:8080 -p 9990:9990 classroom.example.com:5000/wildfly-management
使用web控制臺部署應用的步驟如下:
1.進入’Deployments’頁面
圖18:Deployments頁面
2.點擊’Add’按鈕。
3.在’ Add Deployment’頁面,按照缺省設置,點擊’Next’。
4.點擊’ Choose File’,選擇你電腦上的
<javaee7-simple-sample PATH>/javaee7-simple-sample.war文件,這個文件是在7.1Build Application章配置的。
5.點擊’Next’。
6.選擇’Enable’方框
圖19:啟用部署
7.點擊’Finish’
圖20:Java EE 7 Simple Sample部署
已經完成Java EE 7 的應用部署,結果能夠在 http://dockerhost:8080/javaee7-simple-sample 里面看到
圖21:Java EE 7 Simple Sample的輸出結果
7.7使用API部署應用
一個獨立的WildFly進程,能通過“本地管理接口”配置來監聽遠程的管理請求。應用服務器自帶的CLI工具能使用這些接口,用戶也能開發自定 義的客戶端來使用這些接口。默認的,WildFly管理接口監聽127.0.0.1.當在一個Docker容器里運行的時候,網絡接口應該跟公共的地址綁 定。這能通過綁定0.0.0.0而不是127.0.0.1來做出改變。
1.啟動另一個WildFly實例:
From Internet
docker run -d --name wildfly -p 8080:8080 -p 9990:9990 rafabene/wildfly-admin
From Instructor
docker run -d --name wildfly -p 8080:8080 -p 9990:9990 classroom.example.com:5000/wildfly-management
除了應用端口8080,管理端口9990也是可用的。WildFly鏡像調整啟動腳本,將管理端口綁定到了0.0.0.0。
2.在JBoss Developer Studio里創建一個新的server適配器,取名為 “WildFly 9.0.0-Management”,指定主機名為’dockerhost’。
3.點擊’Next’修改下圖中所示的值
圖22:創建server適配器
4.按照’ Remote System Integration’頁面的缺省設置,點擊’Finish’
5.雙擊新建的server適配器,修改server的屬性。指定管理賬號的用戶名和密碼。注意:需要刪除已經存在的密碼,見如下圖:
圖23:管理登錄賬號
6.右鍵新建的server適配器并點擊’Start’,狀態會改變成’Started’狀態
圖24:同步WildFly Server
7.右鍵javaee7-simple-sample項目,選擇’Run on Server’并選擇這個server。這個項目會運行起來并展示啟動頁面。
8.當結束的時候停止WildFly
docker stop wildfly