基于OSGi和Spring开发Web应用.doc_第1页
基于OSGi和Spring开发Web应用.doc_第2页
基于OSGi和Spring开发Web应用.doc_第3页
基于OSGi和Spring开发Web应用.doc_第4页
基于OSGi和Spring开发Web应用.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于OSGi和Spring开发Web应用作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追求的目标。Spring 是一个著名的 轻量级 J2EE 开发框架,其特点是面向接口编程和非侵入式的依赖注入。将 OSGi 和 Spring 结合能充分发挥二者各自的特长,更好地满足企业级应用开发的需求。Spring 开发组织在 2008 年发布了将 OSGi 和 Spring 结合的第一个版本:Spring-DM。dm Server 是一个完全模块化部署的,基于OSGi的Java服务器,为运行企业Java应用和Spring应用提供更加强大的灵活性和可靠性。SpringSource应用平台是构建在Spring、OSGi和Apache Tomcat之上的应用服务器,这个新的应用服务器摒弃了原有的Java EE服务器标准,自然而然地将Spring编程模型展现其中,随之而来的还有一套基于OSGi内核构建的全新部署和打包系统。本文通过一个简单实例,介绍如何利用 Spring-DM 开发基于 OSGi 和 Spring 架构的 Web 应用,同时探讨其中用到的关键技术及其基本思想。实例教程:一、. 指定Target Platform 到所用到的所有的bundle包的目录中。二、 创建一个Service接口bundle新建一个接口类:mon.ShowMsgInfo同时新加一个接口方法:public String GetMsgInfo();打开这个接口bundle工程的MANIFEST.MS文件,在 Runtime/Exproted Packages 中添加刚刚新建的接口类,使之对外提供这个服务。三、 创建一个接口bundle的实现 bundle打开这个接口bundle工程的MANIFEST.MS文件,在 Dependencies/Imported Packages 中添加上面新建的接口类新建一个接口实现类:ShowMsgInfo在这个类中,实现接口中的方法:package tech.test.service;import mon.IShowMsgInfo;public class ShowMsgInfo implements IShowMsgInfo Overridepublic String GetMsgInfo() return Hello Word!;接下来,我需要将这个实现类发布成为一个OSGI服务:在工程新一个目录OSGIINF ,并新建一个components.xml文档。打开这个接口bundle工程的MANIFEST.MS文件,添加一行Service-Component: OSGI-INF/components.xml四、 接下来,我们创建一个WEB应用bundle:.1. 新建一个网页bundle工程:2. 在工程目录中创建 WEB-INF/lib 、 WEB-INF/classes 两个目录并在WEB-INF目录中,创建 Spring、jsf、及 web 配置文件:3. 在MANIFEST.MF 文件中的配置项: Runtime/Classpath 中添加刚才创建的两个目录。4. 点击Add 添加我们将要使用的jar包5. 新建一个网页就的Bean类TestBeanpackage tech.test.bean;import tech.test.control.TestBeanControl;public class TestBean private TestBeanControl testControl;public String getShowMsg() return testControl.getShowMsg();public TestBeanControl getTestControl() return testControl;public void setTestControl(TestBeanControl testControl) this.testControl = testControl;6. 创建一下控制类 TestBeanControlpackage tech.test.control;import mon.IShowMsgInfo;public class TestBeanControl private static IShowMsgInfo msginfoService;public String getShowMsg() return msginfoService.GetMsgInfo();public void setMsginfoService(IShowMsgInfo msginfoService) this.msginfoService = msginfoService;public void unsetMsginfoService(IShowMsgInfo msginfoService) if(this.msginfoService=msginfoService)this.msginfoService = null;7. 打开这个接口bundle工程的MANIFEST.MS文件,在 Dependencies/Imported Packages 中添加上面新建的接口服务类及WEB服务类8. 新建一个 OSGIINF/components.xm 文件,我们来引用上面发布出来的OSGI服务9. 打开这个接口bundle工程的MANIFEST.MS文件,添加一行Service-Component: OSGI-INF/components.xml10. 修改 Application-test.xml修改 faces-config.xmlxmanager_web_resourceszh_CNorg.springframework.web.jsf.DelegatingVariableResolverTestBtech.test.bean.TestBeansessiontestControl#TestControlindex*index/index.jsp修改 web.xml XmanagerWebjavax.faces.CONFIG_FILES/WEB-INF/faces-config.xmlorg.apache.myfaces.DETECT_JAVASCRIPTfalseorg.apache.myfaces.PRETTY_HTMLtrueorg.apache.myfaces.AUTO_SCROLLtruecontextConfigLocation/WEB-INF/Application*.xmlorg.springframework.web.context.ContextLoaderListenerMyFacesExtensionsFilterorg.apache.myfaces.webapp.filter.ExtensionsFiltermaxFileSize100mMyFacesExtensionsFilterFaces ServletMyFacesExtensionsFilter/faces/myFacesExtensionResource/*SetCharacterEncodingorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8SetCharacterEncoding*.jsfFaces Servletjavax.faces.webapp.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论