脱离eclipse启动基于equinox的servlet容器
From Tuscany中文社区
本文介绍如何直接启动equinox以及我们所开发的那个极其简单的web应用。 首先,进入eclipse的plugins目录,用dir *osgi*命令,可以看到下图的结果:
启动equinox内核的命令是: java -jar org.eclipse.osgi_3.3.1.R33x_v20070828.jar -console
osgi有一套基本命令,用help可以看到一个简单的参考,
使用ss命令,可以看到当前osgi内核之上所有的boundle的发布情况: 如果你是第一次使用这个osgi内核,ss是只有一个输出结果,就是osgi本身。
图中是最终安装、发布了我们所需要的boundle后的输出
在这个输出中,共有10个服务(boundle),安装所使用的命令是:install和start
例如:我们现在需要安装我们所开发的那个plugin(它也是一个boundle)。 假设我们已经将这个plugin打包,放在d:\temp\plugin目录下,文件名是test1_1.0.0.jar
则我们需要使用命令:install file:/d:/temp/plugin/test1_1.0.0.jar 然后使用start file:/d:/temp/plugin/test1_1.0.0.jar
这时我们就能从ss的输出中看到安装进去的这个boundle了。
[编辑] 如何从eclipse打包一个boundle(plugin)
直接使用eclipse的export功能即可将一个plugin项目打包成一个可以发布的boundle。 但是这里有一点需要注意的是:缺省条件下,除了元文件外,只有class文件会输出到jar里面,象我们曾经介绍的指向一个目录下的静态网页的org.eclipse.equinox.http.registry.resources,就必须设置在打包时,将这些静态资源输出到jar,具体做法如下图:
[编辑] 改变jetty服务的端口
在equinox中,jetty启动时自动使用80端口,如果需要修改这个值,必须在启动equinox时提供一个参数,如下: -Dorg.eclipse.equinox.http.jetty.http.port=8000 这个参数中:org.eclipse.equinox.http.是bundle的名称(没有版本号),而http.port才是这个参数的名字。这是OSGi里面使用参数的规则。

