WAS CE 即WebSphere Application Server Community Edition 的簡稱,它是一個輕量級的 Java™ 2 Platform Enterprise Edition (J2EE) 應用服務器。有關 WAS CE 的基本概念和目錄結構更詳細的信息,請參閱參考資料。
本部分主要介紹 WAS CE 的部署工具,常用的三種部署方法:命令行部署、控制檯部署和熱部署,以及兩種部署模式:本地部署和遠程部署。
WAS CE 提供的部署工具,可用來安裝、卸載、重安裝、啓動、停止應用和模塊,也可用來安裝、卸載配置信息,如部署計劃的配置、安全域以及數據庫連接池的配置信息等。可由命令行的方式調用部署工具,也可通過基於圖形界面的控制檯訪問。下面分別介紹。
本文描述的部署方法和部署模式適用於 WAS CE V1.0.1.2或更新版本。
注:本文中%WASCE_HOME%表示 WAS CE 的安裝目錄;%Sample_HOME%代表預部署示例的存放目錄。文中的例子各種命令的使用以 Windows 下的用法爲例。
|
|
當 WAS CE server 啓動後,進入 WAS CE 安裝目錄下的bin目錄,在這裏可由兩種方式激活部署工具:
java -jar deployer.jar <general_options> <command> <command_options> |
deploy[.bat|sh] <general_options> <command> <command_options> |
general_options 定義了常規選項,適用於所有的命令。command_options 則指出針對各個指令的特殊選項。
1.1 常規選項
--uri <identifier>
可選項。常用於遠程部署。
<identifier>是一個服務器要連接到的URI。如果<identifier>沒有定義,部署工具將試圖用本機 localhost 的標準端口 1099 連接服務器。
URI有嚴格的使用格式:
deployer:geronimo:jmx:rmi:///jndi/rmi:[//host[port]]/JMXConnector |
--host <host>
可選項。
既可用於本地部署,也可用於遠程部署。
在本地部署時,其默認值 localhost。而在遠程部署中,<host>即是應用和資源將要部署到的服務器所在的主機名或 IP。
--port <port>
可選項。
<port>即 server 的端口號,默認值 1099。如果在部署應用或資源之前,修改了 config.xml 文件中對應應用或資源的 port 值,則在部署時,必須用--port <port>明確說明。
--driver <driver_path>
可選項。
您不僅可以在 WAS CE 上使用部署工具,也可以在任何遵循 JSR-88 的服務器上使用部署工具。對於非 WAS CE 服務器,必須由<driver_path>提供包含 JSR-88 部署實現類的 jar 文件。
--user <username>
必選項。
這是身份驗證時使用的用戶名。如果沒有提供用戶名,則會提示您輸入一個用戶名。WAS CE 的缺省管理員用戶名是"system"。
--password <password>
必選項。
這是身份驗證時使用的密碼。如果沒有提供密碼,則 WAS CE 會嘗試不用密碼進行連接。如果連接失敗,則會提示您輸入一個密碼。WAS CE 對於"system"管理員用戶的缺省密碼是"manager"。
--syserr <select>
可選項。
<select>對應Boolean,如果爲true,則將錯誤記錄到syserr設備中。缺省值爲false。
--verbose <select>
可選項。
<select>對應 Boolean,如果爲 true,則將調試信息輸出到標準輸出。缺省值爲 false。
要獲得常規選項的所有列表,請輸入:
deploy[.bat|sh] help options |
1.2 常用命令--command
WAS CE 提供了多種指令用於管理應用程序部署。
常用的指令如下:
deploy
login
redeploy
start
stop
undeploy
其他的指令:
distribute
list-modules
另外,您可以用 help 指令查看某個指令的更詳細的信息。具體格式爲:
deploy[.bat|sh] help <command> |
1.2.1 deploy
deploy 既可用於本地部署,也可用於遠程部署。
同時,deploy 必須在 WAS CE Server 已經啓動後才能使用。
進入 WAS CE 安裝目錄下的bin目錄,雙擊startup.bat 啓動server。
WAS CE Server 啓動後,將顯示已經啓動的 module,Web Application,以及各個 Connector 和對應的偵聽端口。如下圖所示:
1.2.1.1 deploy 的使用格式:
java -jar deployer.jar <general_options> deploy <module> <deployment_plan> |
或
deploy[.bat|sh] <general_options> deploy <module> <deployment_plan> |
1)<general_options>
<general_options>的詳細使用參考前面的常用選項說明。
如果不更改 port 屬性值,則系統默認 deploy 使用的端口爲 1099;如果更改了 port 值,則需要明確指明 port 屬性值。
在 WAS CE 安裝目錄的 var/config 下,有一個 config.xml 文件,該文件記錄了系統應用和系統模塊,已經部署的應用和模塊,及其對應的端口。在 server 啓動之前你可以更改這裏的端口,但是在使用部署工具時,必須用-- port 參數明確指出端口號。
注:由於在啓動 WAS CE Sever 時,將讀取 config.xml,在停止 WAS CE Sever 時,各個 GBean 的狀態將回寫到 config.xml 文件,因此在 WAS CE Sever 運行過程中所作的任何修改均不起作用,不能保存下來,必須在 server 啓動之前修改有關屬性值。
如將RMI端口由 1099 改爲 1090。
修改前:
<configuration name="geronimo/rmi-naming/1.0/car"> <gbean name="RMIRegistry"> <attribute name="port">1099</attribute> </gbean> <gbean name="NamingProperties"> <attribute name="namingProviderUrl">rmi://0.0.0.0:1099</attribute> </gbean> </configuration> |
修改後:
<configuration name="geronimo/rmi-naming/1.0/car"> <gbean name="RMIRegistry"> <attribute name="port">1090</attribute> </gbean> <gbean name="NamingProperties"> <attribute name="namingProviderUrl">rmi://0.0.0.0:1090</attribute> </gbean> </configuration> |
此時,在server啓動的窗口中,偵聽端口也改變爲 1090。
Listening on Ports: 1090 0.0.0.0 RMI Naming 1527 0.0.0.0 Derby Connector 4201 0.0.0.0 ActiveIO Connector EJB 4242 0.0.0.0 Remote Login Listener |
此時,在使用部署工具時,也要明確指明端口。如部署 hello-1.0.war 如下:
deploy --user system --password manager --port 1090 deploy %Sample_HOME%/hello-1.0.war |
2) <module>
<module>對應要部署的應用或資源的文件名和位置,一個 module 文件可以是以下類型的任何一種:
- J2EE Enterprise Application Archive (EAR) file
- J2EE Web Application Archive (WAR) file
- J2EE Enterprise JavaBean Archive (JAR) file
- J2EE Java Resource Archive (RAR) file
3) <deployment_plan>
<deployment_plan>是一個 xml 格式的文件,定義了部署應用或資源時要用到的部署計劃。有些簡單的應用,部署計劃已經包含在 ear 或 war 包中,或者不需要部署計劃,此時部署計劃省略,我們稱前者爲內嵌部署計劃。
下面舉例說明 deploy 的用法:
deploy --user system --password manager deploy /%Sample_HOME%/hello-1.0.war |
在複雜的應用中,部署計劃需要單獨給出;或者,用顯示給出的部署計劃覆蓋內嵌的部署計劃。
deploy --user system --password manager deploy %WASCE_HOME% /repository/tranql/rars/tranql-connector-derby-embed-xa-1.1.rar %Sample_HOME%/Cloudscape-db-plan.xml |
當部署成功後,窗口給出部署成功的提示:
Deployed com/ibm/websphere/ce/samples/hello @ http://<hostname>:<port>/hello |
注:deploy 也可以僅部署 xml 格式的文件,而不需 WAR 或 EAR 等格式的文件;此時的 xml 文件用於配置已經存在的 GBean。詳情請參考示例文檔關於 LDAP 的說明。
1.2.1.2 deploy 的部署模式
1)本地部署
詳細請參考 1.2.1.1 deploy 的使用格式。
2)遠程部署
其使用格式:
java -jar deployer.jar --uri deployer:geronimo:jmx:rmi:///jndi/rmi:[//host[port]]/JMXConnector <general_options> deploy <module> <deployment_plan> |
或
deploy.bat --uri deployer:geronimo:jmx:rmi:///jndi/rmi:[//host[port]]/JMXConnector <general_options> deploy <module> <deployment_plan> |
例:
deploy --uri deployer:geronimo:jmx://hostname --user system --password manager deploy %Sample_HOME%/hello-1.0.war |
窗口顯示執行的操作和部署結果:
Uploading 1 file(s) to server File upload complete (Server :OK) 1 file(s) transferred to server. Resuming deployment operation. Deploy com/ibm/websphere/ce/samples/hello @ http://<hostname>:<port>/hello |
此時,訪問 http://<hostname>:<port>/hello 即可看到預期的內容。
1.2.2 login
這個指令用來爲當前的連接保存用戶名和密碼,並把這個認證信息保存到位於用戶目錄下的 .geronimo-deployer 文件中。以後到同一個服務器的連接都儘可能地使用已經保存下來的認證信息,而不再給出提示。
連接到不同服務器的認證信息將單獨保存,因此,您可以在命令行中用 --port 或 --host 或 --url 來指出連接到不同服務器的認證信息。
格式爲:
deploy[.bat|sh] --user <user_name> --password <password> login |
login 之後,當您下次使用不同的指令時,就不用再輸入用戶名和密碼,可以直接使用了。如:
deploy[.bat|sh] list-modules |
1.2.3 redeploy
使用這個指令來停止、重新部署、啓動先前已經部署的模塊。
格式爲:
deploy[.bat|sh] <general_options> redeploy <module> <deployment_plan> |
和 deploy 指令一樣,redeploy 可以部署以下類型的模塊:
- J2EE Enterprise Application Archive (EAR) file
- J2EE Web Application Archive (WAR) file
- J2EE Enterprise JavaBean Archive (JAR) file
- J2EE Java Resource Archive (RAR) file
1.2.4 start
start 指令用來啓動已經部署的模塊。
格式爲:
deploy[.bat|sh] <general_options> start <moduleIDs> |
可以同時啓動多個模塊,此時,moduleIDs 用空格間隔即可。
可以用 list-modules 指令來查看各個模塊的 moduleID;也可查看各個模塊的部署計劃以得到 moduleID 的有關信息。
1.2.5 stop
停止正在運行的模塊。
格式爲:
deploy[.bat|sh] <general_options> stop <moduleIDs> |
可以同時停止多個模塊,此時,moduleIDs 用空格間隔即可。
可以用 list-modules 指令來查看各個模塊的 moduleID;也可查看各個模塊的部署計劃以得到 moduleID 的有關信息。
1.2.6 undeploy
從服務器上停止、刪除模塊及其所有的部署信息,而不管該模塊當前是否正在運行。 格式爲:
deploy[.bat|sh] <general_options> undeploy <moduleIDs> |
可以同時刪除多個模塊,此時,moduleIDs 用空格間隔即可。
可以用 list-modules 指令來查看各個模塊的 moduleID;也可查看各個模塊的部署計劃以得到 moduleID 的有關信息。
1.2.7 distribute
用來部署一個新的模塊。與 deploy 不同的是,distribute 不啓動模塊,當需要運行通過 distribute 指令部署的模塊時,需要執行 start 指令。而 deploy 則啓動模塊,相當於在部署的同時執行了 start 操作。
格式爲:
deploy[.bat|sh] <general_options> distribute <module> <deployment_plan> |
有關<module>和<deployment_plan>的說明請參考 1.2.1.1 deploy 指令。
1.2.8 list-modules
列出在服務器上所有可用的模塊。必須在服務器運行時才能使用該指令。
格式爲:
deploy[.bat|sh] <general_options> list-modules [--all | --started | --stopped] |
--all
默認值。列出所有可用的模塊。
--started
列出正在運行的模塊。
--stopped
列出停止的模塊。
|
WAS CE 控制檯是基於 web方式的圖形操作界面,給您提供方便友好的管理 WAS CE 服務器的方式。既可用於本地部署,也可用於遠程部署。
只要 WAS CE 服務器已經啓動,就可以通過 http://localhost:8080/console 訪問控制檯。
首頁面如圖所示:
輸入 WAS CE 的 administrator 用戶名 system 和密碼 manager,即可登錄到 WAS CE 的歡迎頁面。
對於一些需要訪問數據庫的複雜應用,部署的基本步驟是:
1)創建數據庫和表
2)配置、部署數據源
3)部署應用
對於一些簡單的部署,不需要數據源,直接部署應用即可。
WAS CE 的下載網站提供了示例程序包(wasce_samples-1.0.1.2.zip)可供用戶下載,在這個示例程序包中有一個用於演示員工信息的 empdemo 的示例,本文以 empdemo 爲例說明如何通過控制檯配置數據庫,以及部署應用程序。
WAS CE 內嵌了 IBM Cloudscape 數據庫,因此可以在控制檯使用 DB Manager 創建 IBM Cloudscape 數據庫如 Employee,並完成建表的操作。
對於其他非內嵌的數據庫如 oracle,DB2 等,需由數據庫自帶的工具來完成創建數據庫,建表的功能。
在 Database Pools 下用 Geronimo database pool wizard 爲數據庫 Employee 建立數據源 jdbc/EmployeeDataSource。
首先命名數據源,並選擇正確的數據庫類型。
點擊"next",爲數據源選擇驅動,配置最大連接數,最小連接數等。
當選擇配置完成後,點擊"show plan"查看數據源部署計劃,點擊"Deploy"部署數據源。 IBM Cloudscape 數據源部署計劃 Cloudscape-db-plan.xml 如下(部分):
<dependency> <uri>org.apache.derby/derby/10.1.2.ibm/jar</uri> </dependency> <dependency> <uri>org.apache.derby/derbynet/10.1.2.ibm/jar</uri> </dependency> <resourceadapter> <outbound-resourceadapter> <connection-definition> <connectionfactory-interface>javax.sql.DataSource </connectionfactory-interface> <connectiondefinition-instance> <name>jdbc/EmployeeDatasource</name> <config-property-setting name="UserName"></config-property-setting> <config-property-setting name="Password"></config-property-setting> <config-property-setting name="DatabaseName">Employee </config-property-setting> <config-property-setting name="CreateDatabase">true </config-property-setting> |
對於非內嵌的數據庫,需將數據庫驅動添加到 WAS CE 的存儲庫(repository)。如向 WAS CE 存儲庫添加 IBM DB2 的 JDBC 驅動。
%WASCE_HOME%/repository/com.ibm.db2/jars/db2jcc-8.2.jar
%WASCE_HOME%/repository/com.ibm.db2/jars/db2jcc_license_cu-8.2.jar
DB2 數據源部署計劃 DB2-db-plan.xml 如下:(部分)
<dependency> <uri>com.ibm.db2/db2jcc/8.2/jar</uri> </dependency> <dependency> <uri>com.ibm.db2/db2jcc_license_cu/8.2/jar</uri> </dependency> <resourceadapter> <outbound-resourceadapter> <connection-definition> <connectionfactory-interface>javax.sql.DataSource </connectionfactory-interface> <connectiondefinition-instance> <name>jdbc/EmployeeDatasource</name> <config-property-setting name="UserName">db2inst1 </config-property-setting> <config-property-setting name="Password">password </config-property-setting> <config-property-setting name="Driver">com.ibm.db2.jcc.DB2Driver </config-property-setting> <config-property-setting name="ConnectionURL"> jdbc:db2://localhost:50000/Employee </config-property-setting> |
在WAS CE 中,數據源與應用一樣,都作爲一個模塊處理,因此部署數據源,既可以像上面那樣直接點擊"Deploy"完成部署,也可以使用命令行部署,或者在控制檯用 Deploy New 指定驅動和部署計劃完成部署。
使用 Deploy New,指定要部署的模塊和部署計劃,點擊 install 按鈕就可完成部署任務。
|
熱部署是 WAS CE 提供的另一種部署方式。僅用於本地部署。
在 WAS CE 安裝目錄下,有個 deploy 目錄,所有需要部署的應用或模塊都可以放在該目錄下,WAS CE 會自動檢測到該目錄下的文件,並部署。
例如:將需要部署的 hello 應用程序對應的文件 hello-1.0.war 拷貝到 deploy 目錄,則在 Serve Window 下將提示模塊部署成功,同樣,在 Commad Line 下,用 list-modules 命令也可看到該應用已經部署成功。
用 list-modules 查看結果如下:
+ com/ibm/websphere/ce/samples/hello @ http://<hostname>:<port>/hello |
訪問 http://<hostname>:<port>/hello 即可看到顯示預期的內容,表明熱部署成功。
對於有部署計劃的應用或模塊,在熱部署時,需要將部署計劃和程序一同打包成支持的一種類型,然後放到deploy目錄。
有關部署計劃的格式和存放位置詳細信息,請參考 WAS CE部署計劃。
通過熱部署部署的應用或資源,要刪除時,可以直接刪除 deploy 目錄下相應的文件,即可完成卸載。
|
本文詳細介紹了 WAS CE 的部署工具,兩種部署模式和三種部署方法,並舉例加以說明。對初級讀者,希望本文能有所幫助。在本文的基礎上,相信讀者應該能夠着手部署自己的應用程序了。