隨筆 - 1  文章 - 37  trackbacks - 0
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          留言簿(16)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          test

          搜索

          •  

          最新評(píng)論

          關(guān)于本文
          本文介紹如何將一個(gè)OSGi Application部署到Tomcat-OSGi中,你會(huì)發(fā)現(xiàn)這是一件非常簡(jiǎn)單的事情。
          在本文的最后部分有相關(guān)資源的下載鏈接和文檔鏈接

          一、準(zhǔn)備工作
          準(zhǔn)備工作分為兩個(gè)部分:準(zhǔn)備一個(gè)OSGi Application  和  準(zhǔn)備Tomcat-OSGi運(yùn)行環(huán)境

          1. 準(zhǔn)備一個(gè)OSGi Application
          Tomcat-OSGi已經(jīng)準(zhǔn)備了一個(gè)應(yīng)用程序:jpetstore-osgi-demo,它是將spring sample - jpetstore加以修改而成的OSGi應(yīng)用程序。
          jpetstore-osgi-demo的最新版本是基于spring-framework-2.5.6和spring-osgi-1.2.0的,點(diǎn)擊這里下載Projects

          2. 準(zhǔn)備Tomcat-OSGi運(yùn)行環(huán)境
               1.>  下載Tomcat的最新版本  apache-tomcat-6.0.18
               2.>  Tomcat-OSGi:Tomcat-OSGi-all-in-one.rar

          解壓縮Tomcat-OSGi-all-in-one.rar
          將2個(gè)jar包拷貝至Tomcat-home/lib 目錄下
          將2個(gè)xml文件拷貝至tomcat-home/conf目錄下
          將war包拷貝至Tomcat-home/webapps 目錄下

          server.xml只是在host節(jié)點(diǎn)添加2個(gè)屬性,如下:

          <Host name="localhost"  appBase="webapps"
                      unpackWARs
          ="true" autoDeploy="true"
                      xmlValidation
          ="false" xmlNamespaceAware="false" className="org.extwind.tomcat.catalina.core.ExtenseStandardHost" hostConfigClass="org.extwind.tomcat.catalina.startup.ExtenseHostConfig">


          tomcat-users.xml 定義了控制臺(tái)權(quán)限,如下

          <?xml version='1.0' encoding='utf-8'?>
          <tomcat-users>
            
          <role rolename="manager"/>
            
          <role rolename="tomcat"/>
            
          <role rolename="admin"/>
            
          <role rolename="role1"/>
            
          <user username="tomcat" password="tomcat" roles="tomcat,manager"/>
            
          <user username="both" password="tomcat" roles="tomcat,role1"/>
            
          <user username="role1" password="tomcat" roles="role1"/>
          </tomcat-users>


          二、將OSGi 應(yīng)用程序?qū)С鰹閎undle

          將下載的projects.rar解壓縮,并在eclipse中作為plug-in導(dǎo)入它們,org.extwind.osgi.demo.jpetstoreosgi.launcher需要作為一個(gè)普通project導(dǎo)入,這些projects包含了源代碼,方便你進(jìn)行調(diào)試。
          Tomcat-OSGi已經(jīng)準(zhǔn)備好了這些bundle,點(diǎn)擊這里下載bundles
          通過(guò)eclipse的導(dǎo)出功能,將他們導(dǎo)出為bundle jar包,需要注意的是,org.apache.jasper, jetty,javax.servlet.*和org.eclipse.osgi是不需要導(dǎo)出的。(在org.extwind.osgi.demo.jpetstoreosgi.launcher中有一個(gè)導(dǎo)出腳本Exporter.xml,可以運(yùn)行它進(jìn)行導(dǎo)出)

          三、在Tomcat-OSGi中部署bundle
          在tomcat-home/webapps中新建一個(gè)目錄JPetStoreOSGi,在JPetStoreOSGi目錄中新建一個(gè)空文件osgi.ini,并將導(dǎo)出的bundles拷貝到該目錄下。
          執(zhí)行spring-framework-2.5.6/samples/jpetstore/db/hsqldb/server.bat 啟動(dòng)數(shù)據(jù)庫(kù)

          現(xiàn)在,準(zhǔn)備工作已經(jīng)完成了,在瀏覽器中輸入 http://localhost:8080/console  進(jìn)入OSGi控制臺(tái),你會(huì)發(fā)現(xiàn)所有bundle都已經(jīng)安裝好了,將所有的bundle都啟動(dòng)了,(建議先啟動(dòng)org.springframework.osgi.web.extender)。

          現(xiàn)在是時(shí)候來(lái)看看JPetStoreOSGi部署到Tomcat-OSGi中后的效果了,在瀏覽器中訪(fǎng)問(wèn)下面這個(gè)地址
          http://localhost:8080/JPetStoreOSGi/shop/index.do

          目前osgi.ini中支持properties屬性 osgi.console,啟動(dòng)osgi控制臺(tái)。

          在Tomcat-OSGi alpha2版本中,支持Equinox-JspServlet的注冊(cè),并兼容其URI pattern,也就是說(shuō),在eclipse的開(kāi)發(fā)環(huán)境中開(kāi)發(fā)出來(lái)的應(yīng)用程序可以直接部署到Tomcat-OSGi中,而無(wú)需任何代碼級(jí)別的修改。
          有一點(diǎn)點(diǎn)區(qū)別就是,在Tomcat-OSGi中已經(jīng)export了javax.servlet(2.4),javax.servlet.jsp(2.1)和org.apache.jasper,因此在Tomcat-OSGi中這些bundle是不需要加入的。
          勿在app中使用org.apache.jasper,會(huì)導(dǎo)致其他應(yīng)用程序的jsp出現(xiàn)錯(cuò)誤。


          相關(guān)資源

          Extwind的Google Group: http://groups.google.com/group/extwind
          Extwind的Google Project:  http://code.google.com/p/extwind  

          Tomcat-OSGi-alpha-2 all-in-one 下載地址
          http://extwind.googlecode.com/svn/trunk/dist/Tomcat-OSGi/Tomcat-OSGi-all-in-one.rar

          Extwind SVN: http://extwind.googlecode.com/svn/trunk/

          jpetstore-osgi-demo的bundles下載地址
          http://extwind.googlecode.com/svn/trunk/demo/jpetstore-osgi-demo/Bundles.rar
          jpetstore-osgi-demo的projects下載地址
          http://extwind.googlecode.com/svn/trunk/demo/jpetstore-osgi-demo/Projects.rar

          構(gòu)建jpetstore-osgi-demo的演示過(guò)程:
          Developing Equinox/Spring-osgi/Spring Framework Web Application Part 1 - 顯示首頁(yè)
          Developing Equinox/Spring-osgi/Spring Framework Web Application Part 2 - 使用Spring-OSGI  
          Developing Equinox/Spring-osgi/Spring Framework Web Application Part 3 - 找到我的Bean  

          構(gòu)建新版jpetstore-osgi-demo的相關(guān)問(wèn)題:
          Tomcat-OSGi Demo: JPetStoreOSGi(Spring-osgi 1.2.0)


          posted on 2009-04-26 23:39 Phrancol Yang 閱讀(5185) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 始兴县| 南溪县| 大英县| 疏勒县| 伽师县| 石门县| 彝良县| 南开区| 阿尔山市| 安义县| 华池县| 泸西县| 罗甸县| 子长县| 剑川县| 射洪县| 泰安市| 南木林县| 宾阳县| 上杭县| 天镇县| 华宁县| 江都市| 平罗县| 什邡市| 太湖县| 加查县| 宁国市| 绵阳市| 台南市| 菏泽市| 黑水县| 建平县| 陆丰市| 洛南县| 吉木萨尔县| 鹰潭市| 信阳市| 龙门县| 双桥区| 深圳市|