自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

部署并運(yùn)行你的OSGi Web應(yīng)用程序

譯文
開(kāi)發(fā) 后端
本文介紹如何部署并運(yùn)行OSGi Web應(yīng)用程序,是《你好,OSGi》系列的最后一篇。在你的第一個(gè)OSGi Web應(yīng)用開(kāi)始在線運(yùn)行的時(shí)候,你的OSGi開(kāi)發(fā)之旅便完成了最初的第一步。

【51CTO精選譯文】本文是《你好,OSGi》系列的***一篇,講述在Eclipse外部如何執(zhí)行OSGi容器。在Eclipse IDE內(nèi)部執(zhí)行Equinox OSGi容器對(duì)于開(kāi)發(fā)非常便利。不過(guò),當(dāng)你的應(yīng)用程序準(zhǔn)備好部署,如果你想要在Eclipse外部執(zhí)行你的OSGi容器,可以按照下面的步驟從命令行運(yùn)行你的Equinox OSGi容器。

51CTO編輯推薦:OSGi入門與實(shí)踐全攻略

從Equinox下載完整的eclipse-equinox-<buildno>.zip 二進(jìn)制文件框架。本文中的示例代碼在版本3.3下進(jìn)行測(cè)試。

解壓縮下載的文件,保存到你的計(jì)算機(jī)上。本示例將使用目錄 C:\software。

在你的計(jì)算機(jī)上建立一個(gè)目錄,命名為 C:\equinox (或?qū)τ谀愕牟僮飨到y(tǒng)等同的目錄)。

從 C:\software 將下面的JAR文件復(fù)制到 C:\equinox:

  1. org.eclipse.osgi_<version>.jar  
  2. javax.servlet v2_4.jar  
  3. org.apache.commons.logging v1_0_4.jar  
  4. org.eclipse.equinox.http.jetty.jar  
  5. org.eclipse.equinox.http.registry.jar  
  6. org.eclipse.equinox.http.servlet.jar  
  7. org.mortbay.jetty v5_1_11.jar  
  8. org.eclipse.equinox.common_<version>.jar  
  9. org.eclipse.equinox.registry_<version>.jar  
  10. org.eclipse.osgi.services_<version>.jar 

現(xiàn)在,打開(kāi)命令控制臺(tái),將目錄更改到 C:\equinox,然后執(zhí)行下面的目錄:

  1. java -jar org.eclipse.osgi_<version>.jar -console 

Equinox OSGi容器將啟動(dòng),并且你將會(huì)看到OSGi>提示符。

安裝、驗(yàn)證和執(zhí)行插件

需要指出的是,雖然你已經(jīng)將所有的插件 JAR 文件復(fù)制到了 C:\equinox 目錄,但所有這些插件還沒(méi)有安裝到OSGi容器。你必須一個(gè)一個(gè)地進(jìn)行安置??梢酝ㄟ^(guò)下面的命令語(yǔ)句在OSGi容器中安裝插件:

  1. install file:<pathtoplug-injar> 

例如,如果你想要安裝javax_servlet v2_4 插件,那么你應(yīng)該執(zhí)行下面的這行命令:

  1. install file:javax.servlet_2.4<version>.jar 

現(xiàn)在,使用install 命令安裝所有必須的插件。

在你的全部插件都安裝完畢后,你可以通過(guò)執(zhí)行ss命令來(lái)它們進(jìn)行驗(yàn)證。OSGi容器將顯示一個(gè)包含三個(gè)列的表格列出所有的已安裝插件:***列顯示插件的ID,第二列顯示插件的狀態(tài),第三列顯示套件的名稱。

請(qǐng)注意,所有套件都處于INSTALLED狀態(tài),除了INSTALLED套件,它處于ACTIVE狀態(tài)。因此,你下一步需要做的是啟動(dòng)所有插件。可以通過(guò)下面的命令啟動(dòng)插件:

  1. start <pluginid> 

在本例中,javax.servlet v2_4套件的ID是1,所以你可以這樣來(lái)啟動(dòng)它:

  1. start 1 

所有插件都啟動(dòng)之后,你可以通過(guò)調(diào)用ss命令來(lái)對(duì)他們進(jìn)行驗(yàn)證。在你的OSGi控制臺(tái)上顯示的內(nèi)容應(yīng)類似于圖 2 所示。

 Jetty 控制臺(tái) 
圖 2. Jetty 控制臺(tái)

***,你可以通過(guò)在瀏覽器中輸入 http://localhost/helloworld.html 來(lái)測(cè)試你的OSGi Web應(yīng)用程序是否正確配置。你應(yīng)該可以看到消息“Hello from helloworld.html”。

將OSGi容器嵌入到servlet容器

在這個(gè)小節(jié),我們將來(lái)看看OSGi Web應(yīng)用程序的另一種部署方式,它將Equinox OSGi容器嵌入到一個(gè)Web應(yīng)用程序中,然后在servlet容器(如Apache Tomcat)中部署該Web應(yīng)用程序。Equinox框架提供bridge.war,一個(gè)模板,具有Equinox OSGi容器的Web應(yīng)用程序?qū)⑦@個(gè)模板嵌入到容器中。

bridge.war應(yīng)用程序包含org.eclipse.equinox.servletbridge.BridgeServlet。這個(gè)servlet負(fù)責(zé)對(duì)你的OSGi容器進(jìn)行初始化。每當(dāng)接收到一個(gè)客戶請(qǐng)求,它將查看是否存在一個(gè)OSGi插件可以處理該請(qǐng)求;如果存在,它將控制轉(zhuǎn)發(fā)至該插件。下面的步驟向你演示了如何使用bridge.war中的com.javaworld.sample.osgi.web.programmatic和com.javaworld.sample.osgi.web.declarative插件。

如果你還沒(méi)有安裝Apache Tomcat,請(qǐng)下載Apache Tomcat 5.5并將其解壓到操作系統(tǒng)文件夾 C:\software(或相應(yīng)的同等文件夾)。

下載bridge.war,然后將其安裝到你的Apache Tomcat服務(wù)器。一旦安裝完成,啟動(dòng)bridge.war Web應(yīng)用程序。

通過(guò)在瀏覽器中訪問(wèn)http://localhost:8080/bridge/sp_test來(lái)測(cè)試Bridge Web應(yīng)用程序。你應(yīng)看到一條消息:“Servlet delegate registered - org.eclipse.equinox.http.servlet.HttpServiceServlet”。

現(xiàn)在,返回到你的Eclipse IDE。在包資源瀏覽器試圖中,右鍵單擊并選擇 Export > Deployable plug-ins and fragments,然后單擊下一步按鈕。在Deployable Plug-ins and fragments對(duì)話框中,輸入如圖 3所示的值。

導(dǎo)出插件 
圖 3. 導(dǎo)出插件

單擊“完成”,Eclipse 將com.javaworld.sample.osgi.web.declarative.jar 和 com.javaworld.sample.osgi.web.programmatic.jar導(dǎo)出到 C:\software\apache-tomcat-5.5.25\webapps\bridge\WEB-INF\eclipse\plugins 文件夾(或你所用操作系統(tǒng)的同等文件夾)。請(qǐng)注意,Bridge Web應(yīng)用程序?qū)?C:\software\apache-tomcat-5.5.25\webapps\bridge\WEB-INF\ 文件夾中的內(nèi)容復(fù)制到Tomcat 工作目錄并從那里執(zhí)行。當(dāng)你網(wǎng)址:http://localhost:8080/bridge/sp_deploy 時(shí),Bridge Web 應(yīng)用程序?qū)⑦@些新的 JAR 文件復(fù)制到 C:\software\apache-tomcat-5.5.25\work\Catalina\localhost\bridge\eclipse \plugins。

現(xiàn)在,重啟你的Tomcat服務(wù)器。一旦Tomcat重啟完成,你將可以看到Tomcat控制臺(tái)中的 osgi> 提示符。

輸入ss來(lái)顯示所有已安裝到bridge.war中的OSGi套件。確認(rèn)com.javaworld.sample.osgi.web.declarative和com.javaworld.sample.osgi.web.programmatic已安裝到 OSGi容器;如果沒(méi)有安裝,可通過(guò)執(zhí)行 install file:<jarfilename>  命令進(jìn)行安裝。

在 OSGi命令提示符下,執(zhí)行 start <bundleid> 命令,啟動(dòng) com.javaworld.sample.osgi.web.declarative.jar 和 com.javaworld.sample.osgi.web.programmatic.jar 插件。

現(xiàn)在,你應(yīng)該能夠在瀏覽器中輸入 http://localhost:8080/bridge/helloworld.html 來(lái)訪問(wèn) helloworld.html 了。

探索該應(yīng)用程序

這個(gè)Bridge應(yīng)用程序提供了以下URL,利用它們,你可以從網(wǎng)絡(luò)瀏覽器來(lái)控制你的OSGi容器。(對(duì)于該示例,這些地址應(yīng)加在 http://localhost:8080/bridge/ 后面;該URL可能會(huì)有所變化,要看你的Tomcat安裝情況。)

  1. sp_deploy:復(fù)制平臺(tái)內(nèi)容到工作或臨時(shí)目錄  
  2. sp_undeploy:工作目錄刪除 Eclipse 的副本  
  3. sp_redeploy:對(duì)平臺(tái)進(jìn)行重置(比如:終止、取消部署、部署以及啟動(dòng))  
  4. sp_start:?jiǎn)?dòng)一個(gè)已部署平臺(tái)  
  5. sp_stop:終止平臺(tái)  
  6. sp_test:提供一個(gè)正常的檢測(cè),并且當(dāng)基于 OSGi 的servlet 已準(zhǔn)備好接收請(qǐng)求時(shí)終止 

繼續(xù)研究探索這個(gè)應(yīng)用程序吧,別忘了給自己一個(gè)鼓勵(lì):你已經(jīng)開(kāi)發(fā)出了你的***個(gè)OSGi Web應(yīng)用程序!

總結(jié)

雖然OSGi的來(lái)源在于提供嵌入式和客戶端解決方案,但很多人認(rèn)為,它的強(qiáng)項(xiàng)將在于服務(wù)器端的開(kāi)發(fā)。服務(wù)器端Equinox是一個(gè)開(kāi)始,利用它,可以更加簡(jiǎn)便地將OSGi的可插入、基于組件的開(kāi)發(fā)模式應(yīng)用到Web應(yīng)用程序。(另一個(gè)是SpringSource應(yīng)用程序平臺(tái), 但不在本文講解的范圍之內(nèi)。)通過(guò)這篇文章中的示例,你已經(jīng)向OSGi Web應(yīng)用程序開(kāi)發(fā)邁出了***步。你已經(jīng)在Eclipse中設(shè)置了OSGi Web應(yīng)用程序開(kāi)發(fā)環(huán)境;學(xué)習(xí)了注冊(cè)O(shè)SGi套件的兩種方式:程序方式和聲明方式;以及,詳細(xì)了解了如何使用這兩種不同的方式對(duì)基于OSGi的Web應(yīng)用程序進(jìn)行部署:將Jetty servlet容器插件嵌入到 Equinox,并將Equinox嵌入到Tomcat。

在這個(gè)系列文章中,你學(xué)習(xí)如何開(kāi)始創(chuàng)建基于OSGi的應(yīng)用程序,學(xué)習(xí)了OSGi開(kāi)發(fā)模式以及創(chuàng)建了一個(gè)簡(jiǎn)單的包含兩個(gè)套件的客戶-服務(wù)器(client-server)應(yīng)用程序。你還學(xué)習(xí)了Spring動(dòng)態(tài)模型如何簡(jiǎn)化了OSGi容器中Spring應(yīng)用程序的開(kāi)發(fā),以及服務(wù)器端Equinox如何提供了一個(gè)可訪問(wèn)的框架以在服務(wù)器環(huán)境中開(kāi)發(fā)和部署OSGi應(yīng)用程序。

所有這些實(shí)踐練習(xí)為你打開(kāi)了OSGi開(kāi)發(fā)之門,希望這個(gè)系列的文章能夠幫助你更好地理解OSGi和Java的模塊化,以及將它應(yīng)用到你的未來(lái)Java開(kāi)發(fā)項(xiàng)目中。

【編輯推薦】

  1. 你好,OSGi!OSGi入門必讀系列
  2. 打造一個(gè)Hello World OSGiWeb應(yīng)用程序
  3. 初探OSGiWeb應(yīng)用開(kāi)發(fā)利器Equinox:環(huán)境設(shè)置
  4. OSGi和Spring入門:什么是Spring動(dòng)態(tài)模型(Spring DM)?
  5. OSGi是什么:Java語(yǔ)言的動(dòng)態(tài)模塊系統(tǒng)
責(zé)任編輯:yangsai 來(lái)源: 51CTO.com
相關(guān)推薦

2009-10-19 14:14:19

OSGi Web應(yīng)用

2022-02-23 15:33:19

前端框架開(kāi)發(fā)Web

2009-06-01 11:37:46

EquinoxOSGi服務(wù)器

2009-04-13 11:35:55

IBMdWEclipseJava

2024-08-19 08:54:02

2011-09-27 09:47:06

2009-04-01 14:33:33

2009-07-09 16:47:26

Servlet的Web

2010-05-20 09:48:36

2011-03-22 14:12:17

LAMP

2010-11-11 09:15:08

Web應(yīng)用程序

2021-03-09 11:09:10

LinuxWindows應(yīng)用程序

2009-07-10 17:24:07

Swing應(yīng)用程序

2009-02-27 17:00:25

2012-04-19 09:34:21

ibmdw

2009-01-16 09:22:40

Web應(yīng)用程序Web程序管理Web服務(wù)

2022-04-27 19:05:46

.NETJavaScript接口

2009-09-29 14:20:05

OSGiContactDAO

2011-11-15 10:28:37

2010-02-01 14:05:03

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)