日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
基于OSGi和Spring開發(fā)企業(yè)級Web應用

作為一個新的事實上的工業(yè)標準,OSGi已經(jīng)受到了廣泛的關注,就在不久前EclipseCon也發(fā)布企業(yè)級OSGi標準,而IBM以及Eclipse也宣稱將大力發(fā)展Java模塊化。Spring是一個著名的輕量級Java EE開發(fā)框架,其特點是面向接口編程和非侵入式的依賴注入。

編輯推薦:OSGi入門與實踐全攻略 Spring開源框架技術

將OSGi和Spring結(jié)合能充分發(fā)揮二者各自的特長,更好地滿足企業(yè)級應用開發(fā)的需求。Spring開發(fā)組織在2008年發(fā)布了將OSGi和Spring結(jié)合的第一個版本:Spring-DM。

dmServer是一個完全模塊化部署的,基于OSGi的Java服務器,為運行企業(yè)Java應用和Spring應用提供更加強大的靈活性和可靠性。SpringSource應用平臺是構(gòu)建在Spring、OSGi和ApacheTomcat之上的應用服務器,這個新的應用服務器摒棄了原有的JavaEE服務器標準,自然而然地將Spring編程模型展現(xiàn)其中,隨之而來的還有一套基于OSGi內(nèi)核構(gòu)建的全新部署和打包系統(tǒng)。

實例教程:

一、.指定TargetPlatform到所用到的所有的bundle包的目錄中。

二、創(chuàng)建一個Service接口bundle

新建一個接口類:com.infotech.test.common.ShowMsgInfo;

同時新加一個接口方法:publicStringGetMsgInfo();

打開這個接口bundle工程的MANIFEST.MS文件,在Runtime/ExprotedPackages中添加剛剛新建的接口類,使之對外提供這個服務。

三、創(chuàng)建一個接口bundle的實現(xiàn)bundle

打開這個接口bundle工程的MANIFEST.MS文件,在Dependencies/ImportedPackages中添加上面新建的接口類:

新建一個接口實現(xiàn)類:ShowMsgInfo:

在這個類中,實現(xiàn)接口中的方法:

 
 
 
 
  1. packagecom.infotech.test.service;
  2. importcom.infotech.test.common.IShowMsgInfo;
  3. publicclassShowMsgInfoimplementsIShowMsgInfo{
  4.  @Override
  5.  publicStringGetMsgInfo(){
  6.   return"HelloWord!!!";
  7.  }
  8. }

接下來,我需要將這個實現(xiàn)類發(fā)布成為一個OSGI服務:在工程新一個目錄OSGI-INF,并新建一個components.xml文檔。

 
 
 
 
  1.  
  2.  
  3.   
  4.  

打開這個接口bundle工程的MANIFEST.MS文件,添加一行:

 
 
 
 
  1. Service-Component:OSGI-INF/components.xml

#p#
四、接下來,我們創(chuàng)建一個WEB應用bundle:

1.新建一個網(wǎng)頁bundle工程:

2.在工程目錄中創(chuàng)建WEB-INF/lib、WEB-INF/classes兩個目錄。

并在WEB-INF目錄中,創(chuàng)建Spring、jsf、及web配置文件:

3.在MANIFEST.MF文件中的配置項:Runtime/Classpath中添加剛才創(chuàng)建的兩個目錄。

4.點擊Add添加我們將要使用的jar包。

5.新建一個網(wǎng)頁就的Bean類TestBean。

 
 
 
 
  1. packagecom.infotech.test.bean;
  2. importcom.infotech.test.control.TestBeanControl;
  3. publicclassTestBean{
  4.  privateTestBeanControltestControl;
  5.  publicStringgetShowMsg(){
  6.   returntestControl.getShowMsg();
  7.  }
  8.  publicTestBeanControlgetTestControl(){
  9.   returntestControl;
  10.  }
  11.  publicvoidsetTestControl(TestBeanControltestControl){
  12.   this.testControl=testControl;
  13.  }
  14. }

6.創(chuàng)建一下控制類TestBeanControl

 
 
 
 
  1. packagecom.infotech.test.control;
  2. importcom.infotech.test.common.IShowMsgInfo;
  3. publicclassTestBeanControl{
  4.  privatestaticIShowMsgInfomsginfoService;
  5.  publicStringgetShowMsg(){
  6.   returnmsginfoService.GetMsgInfo();
  7.  }
  8.  publicvoidsetMsginfoService(IShowMsgInfomsginfoService){
  9.   this.msginfoService=msginfoService;
  10.  }
  11.  publicvoidunsetMsginfoService(IShowMsgInfomsginfoService){
  12.   if(this.msginfoService==msginfoService)
  13.    this.msginfoService=null;
  14.  }
  15. }

7.打開這個接口bundle工程的MANIFEST.MS文件,在Dependencies/ImportedPackages中添加上面新建的接口服務類及WEB服務類。

8.新建一個OSGI-INF/components.xm文件,我們來引用上面發(fā)布出來的OSGI服務。

 
 
 
 
  1.  
  2.  
  3.   bind="setMsginfoService"unbind="unsetMsginfoService"
  4.   cardinality="0..1"policy="dynamic"/>

9.打開這個接口bundle工程的MANIFEST.MS文件,添加一行。

 
 
 
 
  1. Service-Component:OSGI-INF/components.xml

10.修改Application-test.xml。

 
 
 
 
  1.  
  2. 修改faces-config.xml
  3. "-//SunMicrosystems,Inc.//DTDJavaServerFacesConfig1.1//EN"
  4. "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
  5.  
  6.   xmanager_web_resources
  7.   
  8.    zh_CN
  9.   
  10.   
  11.    org.springframework.web.jsf.DelegatingVariableResolver
  12.   
  13.  
  14.  
  15.  
  16.   TestBean
  17.   com.infotech.test.bean.TestBean
  18.   session
  19.   
  20.    testControl
  21.    #{TestControl}
  22.   
  23.  
  24. index
  25. *
  26. index
  27. /index.jsp
  28.    

修改web.xml。

 
 
 
 
  1.  xmlns="http://java.sun.com/xml/ns/j2ee"
  2.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.  xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  4.  XmanagerWeb
  5.  
  6.   javax.faces.CONFIG_FILES
  7.   /WEB-INF/faces-config.xml
  8.  
  9.  
  10.   org.apache.myfaces.DETECT_JAVASCRIPT
  11.   false
  12.  
  13.  
  14.   org.apache.myfaces.PRETTY_HTML
  15.   true
  16.  
  17.  
  18.   org.apache.myfaces.AUTO_SCROLL
  19.   true
  20.  
  21.  
  22.   contextConfigLocation
  23.   /WEB-INF/Application*.xml
  24.  
  25.  
  26.   
  27.    org.springframework.web.context.ContextLoaderListener
  28.   
  29.  
  30.  
  31.   MyFacesExtensionsFilter
  32.   
  33.    org.apache.myfaces.webapp.filter.ExtensionsFilter
  34.   
  35.   
  36.    maxFileSize
  37.    100m
  38.   
  39.  
  40.  
  41.   MyFacesExtensionsFilter
  42.   FacesServlet
  43.  
  44.  
  45.   MyFacesExtensionsFilter
  46.   /faces/myFacesExtensionResource/*
  47.  
  48.  
  49.   SetCharacterEncoding
  50.   
  51.    org.springframework.web.filter.CharacterEncodingFilter
  52.   
  53.   
  54.    encoding
  55.    UTF-8
  56.   
  57.  
  58.  
  59.   SetCharacterEncoding
  60.   *.jsf
  61.  
  62.  
  63.   FacesServlet
  64.   javax.faces.webapp.FacesServlet
  65.   1
  66.  
  67.  
  68.   FacesServlet
  69.   *.jsf
  70.  
  71.  
  72.   index.jsf
  73.   index.jsp
  74.  

11.導入三個工程:

 
 
 
 
  1. Catalina.config
  2. Server.config
  3. Org.springframework.osgi.log4j.config

12.好了,寫一個測試頁:index.jsp。

 
 
 
 
  1. <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
  2. <%@taglibprefix="f"uri="http://java.sun.com/jsf/core"%>
  3. <%@taglibprefix="h"uri="http://java.sun.com/jsf/html"%>
  4. <%@taglibprefix="x"uri="http://myfaces.apache.org/tomahawk"%>
  5. <%@taglibprefix="c"uri="http://java.sun.com/jstl/core"%>
  6. <%@taglibprefix="t"uri="http://jsftutorials.net/htmLib"%>
  7.  
  8.  

13.最后創(chuàng)建一個Debug環(huán)境。

運行結(jié)果:


網(wǎng)站欄目:基于OSGi和Spring開發(fā)企業(yè)級Web應用
分享URL:http://m.5511xx.com/article/cohpopp.html