`

SpringDM笔记8-开发SpringDM Web Bundle

 
阅读更多

1. 创建工程

   mvn archetype:create -DgroupId=com.manning.sdmia  -DartifactId=SpringDM-Web-Sample

   文件目录结构:

   SpringDM-Web-Sample\
       src/
           main/
              java/
              webapp/
                  WEB-INF/
                     web.xml
                  index.html
                  index.jsp
              test/
    pom.xml:

    ...

    <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.4</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Include-Resource>
                          src/main/webapp
                    </Include-Resource>
                    <Web-ContextPath>
                          SpringDM-Web-Sample
                    </Web-ContextPath>
                </instructions>
            </configuration>
    </plugin>

    ...

2. 工程打包

    The bundle will be deployed in two steps: it will be deployed as a bundle in the OSGi container,

    then the Spring DM web extender will react to its registration with OSGi by deploying it to the

    web container. To be deployed by the web extender, a bundle needs to meet one of two   

    conditions:
    ■ Its filename ends with .war.
    ■ It contains a WEB-INF directory at its root.

3. 部署测试

    install file:///D:/sts_workspace/SpringDM-Web-Sample/target/SpringDM-Web-Sample-1.0.0.jar

    访问地址路径:

    ■ http://localhost:8080/SpringDM-Web-Sample/
    ■ http://localhost:8080/SpringDM-Web-Sample/index.jsp

    测试代码:

    public class SpringDmWebSampleTest extends AbstractConfigurableBundleCreatorTests {

      public void testIntegration() throws Exception{
         boolean bundleIsHereAndStarted = false;
         for(Bundle bundle : bundleContext.getBundles()){
            if("com.manning.sdmia.SpringDM-Web-Sample".equals(bundle.getSymbolicName())

                &&bundle.getState() == Bundle.ACTIVE){
                bundleIsHereAndStarted = true;
                break;
            }
         }
         assertEquals("SpringDM-Web-Bundle is not installed or activated!", bundleIsHereAndStarted);
       
         Thread.sleep(10*1000);
         testConnection("http://localhost:8080/SpringDM-Web-Sample/index.html");
         testConnection("http://localhost:8080/SpringDM-Web-Sample/index.jsp");       
     }

     private void testConnection(String address) throws Exception {
        URL url = new URL(address);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setUseCaches(false);
       
        try {
            con.connect();
            assertEquals(HttpURLConnection.HTTP_OK, con.getResponseCode());
        } finally {
            con.disconnect();
        }
     }
   
     @Override
     protected String[] getTestBundlesNames() {
        return new String[] {
                "org.springframework.osgi, spring-osgi-web,"
                        + getSpringDMVersion(),
                "org.springframework.osgi, spring-osgi-web-extender,"
                        + getSpringDMVersion(),
                "javax.servlet, com.springsource.javax.servlet, 2.4.0",
                "org.springframework.osgi, catalina.osgi, 5.5.23-SNAPSHOT",
                "org.springframework.osgi, catalina.start.osgi, 1.0.0",
                "org.springframework.osgi, jsp-api.osgi, 2.0-SNAPSHOT",
                "org.springframework.osgi, jasper.osgi, 5.5.23-SNAPSHOT",
                "org.springframework.osgi, commons-el.osgi, 1.0-SNAPSHOT",
                "org.springframework.osgi, jstl.osgi, 1.1.2-SNAPSHOT",
                "com.manning.sdmia, SpringDM-Web-Sample, 1.0.0" };
     }
   
     @Override
     protected Resource getTestingFrameworkBundlesConfiguration() {
        return new InputStreamResource(SpringDmWebSampleTest.class

           .getResourceAsStream("boot-bundles.properties"));
     }   
   }

   其中文件boot-bundles.properties:

4.启动容器

    java -jar org.eclipse.osgi-3.5.1.R35x_v20090827.jar -console

5.案例代码

   将附件SpringDM-Web-Sample.rar

 

 

分享到:
评论
3 楼 SpringsFeng 2012-03-28  
SpringDM项目现在已经捐给Eclipse了,叫做Gemini项目,建议关注该项目。
2 楼 linyan803 2012-03-27  
楼主,你看的那本书学习的SpringDM,我参考下是否 manning spring dm in action?
1 楼 41082468 2011-12-03  
老大 压缩包 没给阿

相关推荐

    SpringDM笔记7-开发SpringDM Bundle

    **SpringDM笔记7-开发SpringDM Bundle** SpringDM(Spring Dynamic Modules)是Spring框架的一个扩展,专门用于OSGi(Open Service Gateway Initiative)环境中的应用程序开发。OSGi是一种Java模块化系统,它允许...

    SpringDM笔记6-Fragment及配置Log4j Fragment Bundle

    在本文中,我们将深入探讨Spring DM(现在称为Spring OSGi)中的Fragment Bundle以及如何配置Log4j在Fragment Bundle中的应用。Spring DM是Spring框架在OSGi(Open Service Gateway Initiative)环境下的扩展,它...

    SpringDM笔记13-OSGi服务注册与引用

    在SpringDM(Spring Dynamic Modules)框架中,OSGi(Open Service Gateway Initiative)服务注册与引用是核心功能之一,它使得模块化系统中的组件能够互相发现并交互。本篇笔记将探讨如何在OSGi环境中注册服务以及...

    adt-bundle-windows-x86-20140624工具文件

    "adt-bundle-windows-x86-20140624工具文件"是一个专为Windows平台上的x86架构设计的Android开发工具包。这个压缩包包含了Android开发者需要的一系列核心工具,使得用户能够在本地环境中创建、调试和发布Android应用...

    adt-bundle-windows-x86_64-20140624

    "adt-bundle-windows-x86_64-20140624" 是一个专为Windows 64位系统设计的Android开发工具包,它包含了开发Android应用所需的所有基本组件,是Android开发者的重要工具。这个版本发布于2014年6月24日,为当时的...

    adt-bundle-windows-x86-20140624

    "adt-bundle-windows-x86-20140624" 是一个专为Windows平台32位架构设计的Android开发工具包。这个压缩包是Google为了方便开发者进行Android应用开发而提供的集成环境,包含了所有必要的工具和软件,使得开发者能够...

    adt-bundle-windows-x86_64-中文包

    下面俩个版本都能正常使用: 编译器版本号:adt-bundle-windows-x86_64-20130717 编译器版本号:adt-bundle-windows-x86_64-20130917 汉化方法: 拷贝中文包中的文件到编译器同名目录下

    adt-bundle-windows-x86_64_20140101.zip下载

    adt-bundle-windows-x86_64_20140101.zip下载,百度云盘分享链接下载

    sqlite-netFx40-setup-bundle-x86-2010-1.0.113.0.exe

    sqlite-netFx40-setup-bundle-x86-2010-1.0.113.0.exe

    adt-bundle-windows-x86_64-20131030(64位, 多SDK版)

    Android 集成开发环境 adt-bundle-windows-x86_64-20131030(64位, 多SDK版) 自带Eclipse, Android SDK(2.2到4.4的SDK都有),自己下载后重新打的包

    adt-bundle-windows-x86_64-20190307

    adt-bundle-windows-x86_64-20190307, 支持android4.4、android5.1 android6.0 android7.1 android8.1 androidP

    spring-tool-suite-3.8.4.RELEASE-e4.6.3-win32-x86_64_sts-bundle.zip

    4. **Groovy/Grails支持**:Grails是基于Groovy语言的Web开发框架,STS提供了良好的集成,便于使用Grails进行开发。 5. **Spring Boot支持**:STS对Spring Boot有深度集成,包括启动器向导、配置编辑器以及Actuator...

    spring-dm-osgi整合jar包

    标题“spring-dm-osgi整合jar包”和描述“spring-dm整合osgi所需所有jar包”提及的核心知识点是Spring Dynamic Modules(简称Spring DM)与OSGi(Open Service Gateway Initiative)框架的集成。这两个技术在Java...

    OSGi与Spring:Spring DM开发

    ### OSGi与Spring:Spring DM开发环境配置详解 #### 一、引言 随着软件架构的不断发展,模块化和微服务化的趋势日益明显。在Java领域,OSGi(Open Service Gateway Initiative)作为一套成熟的技术标准,为实现模块...

    postgis-bundle-pg15x64-setup-3.3.2-2.exe

    postgis-bundle-pg15x64-setup-3.3.2-2.exe是一个安装程序,用于在64位操作系统上安装PostGIS和PostgreSQL扩展。PostGIS是一个开源的空间数据库扩展,它允许用户在PostgreSQL数据库中存储和查询地理空间数据。该扩展...

    adt-bundle-windows-x86

    adt-bundle-windows-x86,adt-bundle-windows-x86,adt-bundle-windows-x86 adt-bundle-windows-x86,adt-bundle-windows-x86,adt-bundle-windows-x86 adt-bundle-windows-x86,adt-bundle-windows-x86,adt-bundle-...

    adt-bundle-windows-x86-20130522

    - **版本更新**:虽然 `adt-bundle-windows-x86-20130522` 版本相对较旧,但在当时是非常流行的开发工具。不过,随着技术的发展,建议使用最新的开发工具,例如 Android Studio,它已经取代了 Eclipse ADT 成为官方...

    android-studio-bundle-145.3537739-windows(1/22)

    android-studio-bundle-145.3537739-windows 目前来说android最新开发工具。

    springDM开发指南(英文)

    5. **Web Support**:Spring DM增加了对Web应用的支持,使得开发者可以更方便地在OSGi环境中部署和管理Web应用。 6. **Classpath Resource Abstraction**:引入了资源抽象层,使得开发者可以通过统一的方式访问类...

    gatling-charts-highcharts-bundle-3.3.1-bundle.zip

    标题中的"gatling-charts-highcharts-bundle-3.3.1-bundle.zip"表明这是一个包含Gatling-Charts-Highcharts-Bundle 3.3.1版本的压缩包文件。这个版本可能包含了该工具的所有组件,包括Gatling的执行引擎、Highcharts...

Global site tag (gtag.js) - Google Analytics