国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
OSGi應(yīng)用發(fā)布到tomcat

 equinox中的內(nèi)置的jetty服務(wù)器已經(jīng)很優(yōu)秀了,但應(yīng)用可以需要用到已經(jīng)成熟的技術(shù),需要集成到如tomcat, weblogic等等容器中。(下面以tomcat容器為例, 其他已經(jīng)包括了OSGi框架的容器可能會(huì)更麻煩一點(diǎn)) 

下面按照自己的操作需要注意的關(guān)鍵步驟,記錄一下如何把OSGi應(yīng)用部署到tomcat容器中。

 

1 環(huán)境準(zhǔn)備(或rap1.5):

servletbridge相關(guān)插件[s1]

  • org.eclipse.equinox.http.servletbridge_1.0.300.v20120522-2049.jar
  • org.eclipse.equinox.servletbridge.extensionbundle_1.2.100.v20120522-2049
  • org.eclipse.equinox.servletbridge_1.2.200.v20120522-2049(需打包成servletbridge.jar

warproduct相關(guān)插件[s2](0.2.2.201212132117)

  • /org.eclipse.libra.warproducts.core
  • /org.eclipse.libra.warproducts.ui

2 打包部署到tomcat

1) 集成到tomcat容器中,得去掉就javax.servlet Plugin的依賴。需要修改:插件中對(duì)于javax.servlet插件的引用,修改為package的方式添加依賴。



 

2) 在已經(jīng)可以運(yùn)行的product的基礎(chǔ)上 [s3],新建warproduct導(dǎo)出為war [r1]。(后面的就不用講了,和部署其他war是一樣的)


 

3 到底發(fā)生了什么

 1、這其中最牛叉的就是servletbridge.jar,其中就三個(gè)Java類:

· org/eclipse/equinox/servletbridge/BridgeServlet.java

    接收和轉(zhuǎn)發(fā)請(qǐng)求(給真正的Servlet),和插件org.eclipse.equinox.http.servletbridge配合把真正的Servlet(org.eclipse.equinox.http.servlet.HttpServiceServlet)注冊(cè)到容器(如tomcat)。

    同時(shí)管理Framework。
· org/eclipse/equinox/servletbridge/CloseableURLClassLoader.java

    (。。。HARD。。。)
· org/eclipse/equinox/servletbridge/FrameworkLauncher.java

    對(duì)插件的部署,啟動(dòng),extensionbundle的創(chuàng)建/更新

 

2、當(dāng)然,能讓我們的導(dǎo)出工作如此輕松,warproduct居功至偉啊!warproduct是一個(gè)精簡(jiǎn)版的PDE-product的實(shí)現(xiàn),在PDE-product的基礎(chǔ)上實(shí)現(xiàn)自定義校驗(yàn)和添加了library的功能,以及實(shí)現(xiàn)自己的導(dǎo)出功能。(使用Ant導(dǎo)出的文章http://www.ibm.com/developerworks/cn/web/wa-rcprap/index.html

現(xiàn)在的版本都是使用warproduct,找了老久才找到一個(gè)老版本的[rold1]),封裝了如下的功能:

  • 去掉對(duì)jetty的依賴
  • 同時(shí)添加servletbridge相關(guān)插件和jar的校驗(yàn)
  • 過(guò)濾javax.servlet插件依賴錯(cuò)誤的提示。
Org.eclipse.libra.warproducts.core.validation.validator代碼  
  1. public static final String SERVLET_BRIDGE_ID   
  2.   = 'org.eclipse.equinox.servletbridge'; //$NON-NLS-1$  
  3.   
  4. public static final String[] BANNED_BUNDLES = new String[] {   
  5.   'javax.servlet', //$NON-NLS-1$  
  6.   'org.eclipse.update.configurator',  //$NON-NLS-1$  
  7.   'org.eclipse.equinox.http.jetty',  //$NON-NLS-1$  
  8.   'org.mortbay.jetty.server',  //$NON-NLS-1$  
  9.   'org.mortbay.jetty.util'  //$NON-NLS-1$  
  10. };  
  11.   
  12. public static final String[] REQUIRED_BUNDLES = new String[] {   
  13.   'org.eclipse.equinox.servletbridge.extensionbundle', //$NON-NLS-1$  
  14.   'org.eclipse.equinox.http.registry', //$NON-NLS-1$  
  15.   'org.eclipse.equinox.registry', //$NON-NLS-1$  
  16.   'org.eclipse.equinox.http.servlet', //$NON-NLS-1$  
  17.   'org.eclipse.equinox.http.servletbridge' //$NON-NLS-1$  
  18. };  
public static final String SERVLET_BRIDGE_ID = 'org.eclipse.equinox.servletbridge'; //$NON-NLS-1$ public static final String[] BANNED_BUNDLES = new String[] { 'javax.servlet', //$NON-NLS-1$ 'org.eclipse.update.configurator', //$NON-NLS-1$ 'org.eclipse.equinox.http.jetty', //$NON-NLS-1$ 'org.mortbay.jetty.server', //$NON-NLS-1$ 'org.mortbay.jetty.util' //$NON-NLS-1$ }; public static final String[] REQUIRED_BUNDLES = new String[] { 'org.eclipse.equinox.servletbridge.extensionbundle', //$NON-NLS-1$ 'org.eclipse.equinox.http.registry', //$NON-NLS-1$ 'org.eclipse.equinox.registry', //$NON-NLS-1$ 'org.eclipse.equinox.http.servlet', //$NON-NLS-1$ 'org.eclipse.equinox.http.servletbridge' //$NON-NLS-1$ };

  + org.eclipse.equinox.http.servletbridge [s1] + tomcat 的功能相當(dāng)于org.eclipse.equinox.http.jetty

 

源碼Source

s1: equinox source

http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/

s2: warproducts demo

https://github.com/hstaudacher/org.eclipse.rap.build.examples/tree/master/warproducts

s3: example

http://winse.iteye.com/blog/1601916 

 

參考:

r1: RAP/Equinox WAR products

http://wiki.eclipse.org/RAP/Equinox_WAR_products

http://download.eclipsesource.com/~hstaudacher/warproducts/3.7

http://eclipse.org/rap/developers-guide/devguide.php?topic=advanced/deployment.html&version=1.5

 

http://eclipsesource.com/blogs/2011/02/02/equinoxrap-war-products-has-moved-hello-eclipse-libra/

http://eclipsesource.com/blogs/2011/02/07/how-to-build-a-server-side-equinoxrap-application/

http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/

 

rold1: webappbuilder

http://eclipsesource.com/blogs/2007/12/07/rap-deployment-part-2-deploying-your-application-as-a-war-file/

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.rap.help/help/html/advanced/deployment.html

寫道
the script/webappBuilder.xml of the org.eclipse.rap.demo.feature.

 

r2:  Equinox in a Servlet Container

http://www.eclipse.org/equinox/server/

http://www.eclipse.org/equinox/server/http_in_container.php

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
部署并運(yùn)行你的OSGi Web應(yīng)用程序
基于OSGI的Cache組件的實(shí)現(xiàn)
Equinox OSGi服務(wù)器應(yīng)用程序的配置步驟
使用Eclipse構(gòu)建Maven的SpringMVC項(xiàng)目
在Eclipse中配置Tomcat
開(kāi)發(fā)Spring MVC應(yīng)用程序(1)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服