您的位置:首页 > 理论基础 > 计算机网络

使用NetBeans6开发OSGi应用(4)——Servlet与Http服务[88250原创]

2008-03-05 18:29 711 查看
转载请保留作者信息:

作者:88250

Blog:http:/blog.csdn.net/DL88250

MSN & Gmail & QQ:DL88250@gmail.com

摘要

上一次,我们分析了KF(Knopflerfish)框架的设计,实践了基于OSGi的应用程序框架的设计。这一讲,我们将基于KF实现的OSGi规范Http Service,做一个简单的Servlet结合HTML/Javascript的实践。

关于基于OSGi的Web开发

在开始前,我们先看一下一些关于OSGi在Web应用方面的尝试。

开发Web应用,最重要的要属Web Server了(亦或Application Server)。在Server的厂商中 IBM、BEA和JBoss应用服务器采用OSGi,虽然目前我们的主要任务的做应用,但是可以了解这些最基本的东西。

好了,简要说一下OSGi在Web上的开发方式:

1. 将Web Server作为Bundle插入OSGi

目前,Apache Jetty可以做到。使用Spring DM(Spring-OSGi)的话,Tomcat的OSGi整合在未来应该也可以做。参考 这个

2. 在Web Server内使用OSGi的Bundle

在Web容器里使用Spring DM(Spring-OSGi)可以做到。

目前来说

在Java的Web开发上,Spring Framework是首选,但是如果应用是以OSGi作为底层的话,情况就不同了:

1. 使用Spring,从Web应用开发的角度来说,视图/持久化/事务管理方便,可结合其他框架或技术的选择余地大
2. 使用OSGi,从系统整体开发角度来说,扩展性、维护性超好,系统整体结构清晰,可以把商业/控制逻辑做到很优良的组件话
3. 结合这两者使用的话(Spring DM),支持的扩展有限且技术相当复杂,得不偿失

所以,权衡后,我更偏向与直接使用OSGi来做Web应用,因为现在手头的一个项目只是运用例简单的HTML,AJAX与Servlet。

让我们简单实践一下!

准备

上一次 :-)

开工:

1. 创建工程

打开NB6,创建一个普通Java应用工程——OSGiServlet:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OSGi Servlet
Bundle-SymbolicName: cn.edu.ynu.sei.osgiservlet
Bundle-Version: 1.0.0.0
Bundle-Category: example
Bundle-Description: Demo HTTP servlet
Bundle-Activator: cn.edu.ynu.sei.osgiservlet.Activator
Import-Package: javax.servlet,
javax.servlet.http,
org.knopflerfish.service.log,
org.osgi.framework,
org.osgi.service.http

4. 测试

编译这个Bundle,安装它到KF里并运行之,结果如下图:



以地址 http://localhost:8080/servlet/firstservlet 访问我们的Servlet:



总结

本次,我们基于OSGi做了一个简单的HTTP/Servlet 容器,可以满足简单的应用。这样,我们可以把我们的应用统一在一个框架里,简化了很多技术细节。但是,做企业应用的话这样是远远不够的,我们也不是太有可能基于OSGi构建一个自己的Application Server,所以,只要容器支持OSGi,结合Spring DM是最好的选择。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: