导航

2012年5月17日

摘要: 在前篇文章《OSGi系列 - 开发服务端Web应用之一:Servlet实现》里,我们讲述了如何在OSGi框架下开发Servlet的方法。但是不是所有的Web应用都只有Servlet,还有很多的静态资源,例如HTML、图片、CSS、JS等等,这篇文章我们继续讲述如何在Bundle里面如何包含这些静态资源,然后通过浏览器进行访问。第一步:打开HelloWorldBundle项目,在src目录下加入下图的这些静态资源:index.html是一个简单的测试网页,包含对images/equinox.png图片的使用。index.html的内容如下:<!DOCTYPE html PUBLIC &qu 阅读全文

posted @ 2012-05-17 12:02 eastson 阅读(788) 评论(1) 推荐(0) 编辑

摘要: 在OSGi框架下如何开发Web应用?这是个问题。OSGi框架下的Web应用运行方式可以归纳为两种:第一种,将Web容器作为一个Bundle,然后运行在OSGi框架中。第二种,将OSGi框架置于Web容器中。本系列文章以第一种运行方式为主,在系列的最后会适当的对第二种运行方式做些介绍。第一步:打开Eclipse,新建Bundle项目HelloWorldBundle(使用Elicpse建立Bundle项目的详细过程可以参考OSGi系列 - 用Eclipse开发Bundle)。HelloWorldBundle项目的目录结构如下图:第二步:打开MANIFEST.MF文件,切换到Dependencies 阅读全文

posted @ 2012-05-17 11:42 eastson 阅读(3470) 评论(0) 推荐(1) 编辑

2012年5月16日

摘要: 这两天看BlueDavy写的一篇OSGi入门的文章《OSGi实战》,在道客巴巴有这篇文章的链接。在这篇文章里面有这样一个例子:一个网站,有一个验证用户名和密码的页面(UserValidatorWebBundle)。验证的方式有三种:LDAP验证(LDAPValidatorBundle)﹑数据库验证(DBValidatorBundle)和配置文件验证(ConfigValidatorBundle)。在OSGi框架来讲,这分别是四个Bundle,UserValidatorWebBundle提供前端Web访问服务,执行时需要调用到三个验证Bundle中某一个提供的验证服务。三个验证Bundle在实际环 阅读全文

posted @ 2012-05-16 14:58 eastson 阅读(1770) 评论(3) 推荐(0) 编辑

2012年5月15日

摘要: Bundle开发过程中如何调试一直是个困扰的问题,今天我们看看Eclipse在这方面是如何解决的。我用的Eclipse JavaEEIndigo 3.7.2版本。第一步:开启Eclipse,新增一个Plug-in项目。第二步:输入项目名称HelloWorldBundle,注意这里的插件运行方式要选择an OSGi Framework。第三步:输入Bundle有关的元数据信息,这里我们使用默认值。我们选择自动产生Activator类,以便简化我们后面的处理。第四步:我们选择从Hello OSGi Bundle模板生成Bundle项目。第五步:输入Hello OSGi Bundle模板需要的启动和 阅读全文

posted @ 2012-05-15 15:01 eastson 阅读(3449) 评论(0) 推荐(0) 编辑

摘要: Equinox是Eclipse的一个OSGi实现,Eclipse3.1后面的版本都是通过它来启动的。可以从Eclipse网站下载Equinox最新版,网址是http://download.eclipse.org/equinox/。如果你有安装Eclipse 3.1后面的版本,在<install location>/plugins目录下就可以找到一个org.eclipse.osgi_3.2.0_xxx.jar这样的文件,这就是Equinox的实现文件。这里的文章我们以org.eclipse.osgi_3.7.2.v20120110-1415.jar为例。新建目录D:\develop\ 阅读全文

posted @ 2012-05-15 14:06 eastson 阅读(632) 评论(0) 推荐(0) 编辑

摘要: Equinox相关的链接:EclipseEquinox HomeGetting Started with Equinox 阅读全文

posted @ 2012-05-15 10:29 eastson 阅读(271) 评论(0) 推荐(0) 编辑

摘要: 估计很多人都接触过路由器,大部分的路由器都支持模块的热插拔,这就意味着可以在路由器运行的状态下给它动态的增加新的功能或者卸载不需要的功能,硬件界的这种热插拔技术一直就是软件界所追求的,而OSGi则使得热插拔技术在软件界成为现实。基于OSGi的系统,可以通过安装新的Bundle﹑更新或停止现有的Bundle来实现系统功能的插拔。那么到底什么是Bundle呢?Bundle其实就是一个jar文件,这个jar文件和普通的jar文件唯一不同的地方就是META-INF目录下的MANIFEST.MF文件的内容,关于Bundle的所有信息都在MANIFEST.MF中进行描述,也就是说,这些都是Bundle的元 阅读全文

posted @ 2012-05-15 09:47 eastson 阅读(663) 评论(1) 推荐(0) 编辑

2012年5月14日

摘要: 安装好了Apache Felix,下面要做的是开发我的第一个Bundle。整个过程是参考Apache Felix Tutorial Example 1 - Service Event Listener Bundle实现的。打开一个DOS窗口,切换到要存放Bundle的目录,这里以D:\develop\eclipse-jee-indigo-SR2-win32\workspace\felix-analysis为例。然后使用Maven创建一个空的项目。mvn archetype:create -DgroupId=felix.tutorial -DartifactId=example1 -Dpacka 阅读全文

posted @ 2012-05-14 14:41 eastson 阅读(1334) 评论(0) 推荐(0) 编辑

摘要: Felix是一个OSGi版本4规范的Apache实现。OSGi是一个基于Java的服务平台规范,其目标是被需要长时间运行、动态更新、对运行环境破坏最小化的系统所使用。有许多公司(包括Eclipse IDE,它是第一个采用OSGi技术的重要项目)已经使用OSGi去创建其微内核和插件架构,以允许在运行时刻获得好的模块化和动态组装特性。几个其他项目如Apache Directory、Geronimo、Jackrabbit、Spring以及JOnAS也都正在转向采用OSGi。从http://felix.apache.org/site/downloads.cgi下载Apache Felix的最新版(当前 阅读全文

posted @ 2012-05-14 08:38 eastson 阅读(505) 评论(0) 推荐(0) 编辑

2012年5月11日

摘要: Maven默认的本地库位置是${user.home}\.m2\repository,可以修改${maven_home}\conf\settings.xml实现自定义本地库位置。 阅读全文

posted @ 2012-05-11 08:35 eastson 阅读(196) 评论(0) 推荐(0) 编辑