使用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
开发Web应用,最重要的要属Web Server了(亦或Application Server)。在Server的厂商中 IBM、BEA和JBoss应用服务器采用OSGi,虽然目前我们的主要任务的做应用,但是可以了解这些最基本的东西。
好了,简要说一下OSGi在Web上的开发方式:
1. 使用Spring,从Web应用开发的角度来说,视图/持久化/事务管理方便,可结合其他框架或技术的选择余地大
2. 使用OSGi,从系统整体开发角度来说,扩展性、维护性超好,系统整体结构清晰,可以把商业/控制逻辑做到很优良的组件话
3. 结合这两者使用的话(Spring DM),支持的扩展有限且技术相当复杂,得不偿失
所以,权衡后,我更偏向与直接使用OSGi来做Web应用,因为现在手头的一个项目只是运用例简单的HTML,AJAX与Servlet。
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
以地址 http://localhost:8080/servlet/firstservlet 访问我们的Servlet:
作者: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是最好的选择。相关文章推荐
- 使用NetBeans6开发OSGi应用(4)——Servlet与Http服务[88250原创]
- 使用NetBeans6开发OSGi应用(4)——Servlet与Http服务[88250原创]
- 使用NetBeans6开发OSGi应用(3)——整合Knopflerfish![88250原创]
- 使用NetBeans6开发OSGi应用(1)——FirstOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(1)——FirstOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(3)——整合Knopflerfish![88250原创]
- 使用NetBeans6开发OSGi应用(1)——FirstOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(3)——整合Knopflerfish![88250原创]
- 使用NetBeans6开发OSGi应用(1)——FirstOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(2)——SecondOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(3)——整合Knopflerfish![88250原创]
- 使用NetBeans6开发OSGi应用(1)——FirstOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(2)——SecondOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(2)——SecondOSGi[88250原创]
- 使用NetBeans6开发OSGi应用(2)——SecondOSGi[88250原创]
- 使用electron开发一个h5的客户端应用创建http服务模拟后台接口mock
- 使用NetBeans6开发OSGi应用——整合Knopflerfish
- 微服务框架Finagle介绍 Part2: 在Finagle中开发基于Http协议的应用
- 使用C++ REST SDK开发简单的Web(HTTP)服务
- OSGI企业应用开发(四)使用Blueprint整合Spring框架(一)