在上次成功將我的RCP項目遷移到瀏覽器中運行后,開始研究怎樣將它部署到Tomcat中,說實話,到目前為止,這方面的資料很少,在Eclipse RAP的新聞組上關于這方面的討論也不是很多。RAP的幫助系統中的介紹文章好像也不是很詳細(好像有點過時)
這里我們簡單介紹一下部署Eclipse RAP 自帶的RAP例子,如果安裝了Eclipse RAP,打開幫助界面,找到RAP幫助文檔中的“How to deploy a RAP application to a servlet container?“ 這篇文章,文章中提供了一個鏈接方式,可以下載一個psf,這是Eclipse的工程集文件,文件內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
<provider id="org.eclipse.team.cvs.core.cvsnature">
<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.http.servletbridge,org.eclipse.equinox.http.servletbridge"/>
<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/rt,org.eclipse.equinox/server-side/bundles/org.eclipse.equinox.servletbridge,org.eclipse.equinox.servletbridge"/>
<project reference="1.0,:pserver:anonymous@dev.eclipse.org:/cvsroot/rt,org.eclipse.rap/releng/org.eclipse.rap.demo.feature,org.eclipse.rap.demo.feature"/>
</provider>
</psf>
你也可以將內容復制到文本文件然后改成 yourpsffile.psf 文件,將它作為Eclipse的工程集導入到Eclipse中,Eclipse就會自動從Eclipse的CVS網站上下載對應的插件,總共有三個插件被下載下來:
org.eclipse.equinox.http.servletbridge
org.eclipse.equinox.servletbridge
org.eclipse.rap.demo.feature
打開org.eclipse.rap.demo.feature工程的script文件夾下的webappBuilder.xml文件,修改屬性名為”servletbridge.dir“的屬性值(好像在18行),將值修改為你的”org.eclipse.equinox.servletbridge“工程的路徑,推薦使用絕對路徑,比如:
<property name="servletbridge.dir"
value="D:/DeveloperWorks/Eclipse-3.5-RAP-SRC/org.eclipse.equinox.servletbridge" />
然后直接使用Ant運行編譯,運行后會在插件的build文件夾下面生成可部署的文件。

打 打開生成的web.xml 文件,將已經被注釋的下面內容
<!--
<init-param>
<param-name>commandline</param-name>
<param-value>-console</param-value>
</init-param>
-->
還原成正常的代碼,這樣可以在Tomcat的控制臺使用OSGI的控制臺,方便查看和管理插件的生命周期,完成插件的更新和卸載功能,再將
<init-param>
<param-name>enableFrameworkControls</param-name>
<param-value>false</param-value>
</init-param>
中的參數值由false改成true,這樣可以啟動對OSGI框架的控制,方便調試。
運行工程下面的ConfigIniCreator.java,(應該在39行)將指定plugins目錄的路徑修改為你本機的絕對路徑,比如我的工程的路徑是:
File file = new File( "D:\\DeveloperWorks\\Eclipse-3.4-RAP\\org.eclipse.rap.demo.feature\\build\\demo\\WEB-INF\\eclipse\\plugins" );
運行后將打印的結果替換\org.eclipse.rap.demo.feature\build\demo\WEB-INF\eclipse\configuration目錄的config.ini文件內容。
接 接著將org.eclipse.rap.demo.feature工程下面的build文件夾下的demo文件夾下面的內容復制到Tomcat的webapps目錄下,啟動Tomcat,啟動后可在控制臺輸入 ”ss" 查看OSGI框架下已經被加載的插件:

可以看到我們部署的org.eclipse.rap.demo文件已經處于激活狀態了。
打 打開瀏覽器,輸入 http://localhost:8080/demo/rap 就可以進行訪問了。
