在上次成功将我的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 就可以进行访问了。