使用Eclipse扩展点实现Bundle基于Web的应用程序

如何创建自己的Bundle,我们如果了解了,应该都知道,存在两种。
1、通过BundleActivator来实现
2、通过OSGi提供的DS服务实现

在这里,我要讲的是通过第3种,即Eclipse插件扩展点机制及equinox.http.registry提供的注册功能来实现。

1、创建一个新插件项目,名为com.example.http.appliction
2、添加资源到项目
创建一个名为web_files的文件夹来存在你所需要的静态内容文件。
放置资源,现在告诉服务器你的插件中静态内容地址及其URL的标识。创建一个扩展点通过创建一个plugin.xml文件,其内容如下:
<plugin>
  <extension point="org.eclipse.equinox.http.registry.resources">
    <resource
      alias="/files"
      base-name="/web_files"/>
  </extension>
</plugin>
在以上扩展文件中,其别名为files,即我们在URL中访问的路径,而真正的文件路径却是web_files.设置好别名,我们就可以通过URL出访问该URL下的资源,例如:在IE中输入http://localhost/files/index.html,如果存在则显示,如果不存在则显示404错误。

3、其实在OSGi提供的Http不只是只能注册静态资源,还可以注册servlet。我们在项目下创建一个包,在其包下创建一个实现javax.serlvet.http.HttpServlet的类。然后使用扩展点的方式,注册该
servlet,然后通过别名,就可以访问该Servlet.
在plugin.xml文件中存在如下内容,则可以通过别名/test来访问此servlet

  <extension point="org.eclipse.equinox.http.registry.servlets">
    <servlet
      alias="/test"
      class="com.example.servlet.MyServlet"/>
  </extension>
在IE中输入http://localhost/test,则输出该servlet的输出结果

详细过程:http://hzylyl.blog.163.com/blog/static/3309716420104124658332/

源代码在附件中,可下载。

你可能感兴趣的:(eclipse,应用服务器,Web,IE,osgi)