<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 1  文章 - 37  trackbacks - 0
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    test

    搜索

    •  

    最新評論

    關(guān)于作者
          The author of this article is co-author of the book "Struts Best Practices" published in German (2004) and French (Feb 2005). He has been working with Java n-tier web since 1998, including SilverStream appserver, before the advent of OS and J2EE. His company, Infonoia SA is editor of multi-platform, multi-repository software and solutions around document retrieval and publishing. Infonoia also provides consulting services, mentoring and training (English, French, German) on Best Practices in the web technologies and frameworks they use, such as Struts, Eclipse and RSP. Wolfgang is also available for speaking engagements on RSP. Wolfgang can be reached at wgehner at infonoia dot com.

    關(guān)于本文
          這篇文章將會分成兩個部分通過分析一個實例去分析如果使用OSGI構(gòu)建一個WEB應(yīng)用。
            第一個部分只是簡單的介紹了如何在應(yīng)用中創(chuàng)建擴展點(extension points),第二部分將通過映射你自己的Servlet和依賴關(guān)系使其能夠作為一個新的Web應(yīng)用運行

    Extensions and Extension points
          在RSP Samples里面的每個Bundle目錄中都有一個 plugin.xml,這里面所配置的 Extension 和 Extension point讓這些URL和Resource能夠被訪問到,它為各個Bundle間的協(xié)作提供了一個通道。(個人感覺這里所說的擴展和擴展點有點像Spring AOP里面的 Advice 和 Pointcut),
          OSGI-R4規(guī)范中提供了Declarative Services (簡稱DS)機制,關(guān)于DS的詳細介紹請查閱 BlueDavy 的Opendoc.

          用Plug-in Manifest Editor打開org.rsp.framework.struts中的Plugin.xml,進入 Extensions 面板,可以看到這個Bundle使用了3種Equinox的Extension(看字面意思就能知道這3種Extension是做什么用的),再進入 Extension points面板,沒有發(fā)現(xiàn)該Bundle提供任何擴展點(Extension points),分析一下具體配置.
     1<?xml version="1.0" encoding="UTF-8"?>
     2<?eclipse version="3.0"?>
     3<plugin>
     4    <extension id="myservletID" name="myservletName" point="org.eclipse.equinox.servlet.ext.servlets">
     5        <alias>/do</alias>
     6        <servlet-class>org.rsp.framework.struts.base.BundleActionServlet</servlet-class>
     7        <init-param>
     8            <param-name>config</param-name>
     9            <param-value>*/WEB-INF/struts-config.xml</param-value>            
    10        </init-param>        
    11        <init-param>
    12            <param-name>chainConfig</param-name>
    13            <param-value>*/WEB-INF/chain-config.xml</param-value>            
    14        </init-param>
    15        <httpcontext-name>cross-context</httpcontext-name>
    16    </extension>
    17
    18    <extension id="myservletID3" name="myservletName3" point="org.eclipse.equinox.servlet.ext.servlets">
    19        <alias>/struts/strutstest.jsp</alias>
    20        <servlet-class>org.rsp.framework.struts.strutstest_jsp</servlet-class>
    21        <httpcontext-name>cross-context</httpcontext-name>
    22    </extension>
    23
    24    <extension id="testResource" point="org.eclipse.equinox.servlet.ext.resources">
    25        <alias>/struts</alias>
    26        <base-name>/</base-name>
    27        <httpcontext-name>cross-context</httpcontext-name>
    28    </extension>
    29     
    30    <extension point="org.eclipse.equinox.servlet.ext.httpcontexts">
    31        <path>/WebContent</path>
    32        <httpcontext-name>cross-context</httpcontext-name>
    33    </extension>
    34 
    35</plugin>

    第4-16行,擴展了org.eclipse.equinox.servlet.ext.servlets,也就是說/do路徑下的URL都交給org.rsp.framework.struts.base.BundleActionServlet去處理
    第18-22行,將/struts/strutstest.jsp 交給 org.rsp.framework.struts.strutstest_jsp去處理
    第24-28行,資源路徑的映射
    第30-33行,Context映射


    The structure of servlet "extension points" is similar, but not quite identical to what you would find in a web.xml . replaces and is new. The OSGi standard specifies that each HTTP service (used by the BridgeServlet , under the hood) uses a different ServletContext * unless the HttpContext is shared*. This could create problems in case of MVC forwards, where usually certain information is passed from the first servlet to the second via the request context. That transport would be broken under Eclipse-OSGi if different or "null" HttpContexts are used among the related servlets. The trick is to give all servlets and resources the same " httpcontext-name ". The name of our choice is "cross-context" (alluding to the Tomcat server.xml attribute as in cross-context="true" , which does similar things but across web applications.). 

    同理,資源映射也是如此     

    本文翻譯到此已經(jīng)基本告一段落,原文后面的內(nèi)容都是基本操作,而本文宗旨就是對OSGI的Web應(yīng)用有個大概的了解,這個目的已經(jīng)達到了。

    結(jié)束語

    偶爾從Google上搜索到了這篇文章,感覺對像我這樣的OSGI初學(xué)者很有用,于是將其意思整理了一下,帖在BLOG上,希望能對路過的OSGI愛好者有所幫助。
    如果想更好的理解作者的意圖,建議看原文。
    歡迎大家通過郵箱
    osgi.phrancol@gmail.com與我討論有關(guān)OSGI的話題。

    作者針對原文開的討論帖 , [點擊這里]
    Spring-osgi首頁有個OSGI視頻課程,值得一看 [
    點擊這里]
    BlueDavy的BLOG [
    點擊這里]
    Equinox in a Servlet Container
    Developing Eclipse/OSGi Web Applications Part 1 
    Developing Eclipse/OSGi Web Applications Part 2

    posted on 2007-08-30 11:05 Phrancol Yang 閱讀(2519) 評論(0)  編輯  收藏 所屬分類: OSGI
    主站蜘蛛池模板: 曰批全过程免费视频在线观看无码| 黄床大片30分钟免费看| 99在线观看视频免费| 精品国产亚洲男女在线线电影 | 野花视频在线官网免费1| 午夜免费福利网站| 亚洲日本VA午夜在线电影| 日本一道一区二区免费看| youjizz亚洲| 成人免费男女视频网站慢动作| 亚洲成av人片在线看片| 亚色九九九全国免费视频| 亚洲午夜国产精品| 猫咪社区免费资源在线观看| 亚洲熟妇成人精品一区| 日韩伦理片电影在线免费观看| 亚洲精品无码久久| 免费精品国产自产拍观看| 视频一区二区三区免费观看| 亚洲一区二区视频在线观看| 成人妇女免费播放久久久| 久久亚洲AV午夜福利精品一区| 亚洲成人免费网址| 亚洲 日韩 色 图网站| 国产高清免费观看| www在线观看播放免费视频日本| 亚洲免费观看视频| 国产成人免费午夜在线观看| 亚洲综合激情五月色一区| 国产免费观看网站| a级毛片100部免费观看| 中文字幕亚洲综合久久| 免费国产黄网站在线看| 自拍偷自拍亚洲精品被多人伦好爽| 久久aⅴ免费观看| 亚洲午夜精品久久久久久app| 免费人成无码大片在线观看| 国产午夜无码精品免费看动漫| 亚洲国产精品成人精品软件| 国产yw855.c免费视频| 国产精品白浆在线观看免费|