`

spring osgi helloworld

    博客分类:
  • java
阅读更多
  1. 1.准备环境:

 

下载felix,

运行felix.jar:org.apache.felix.main.Main函数

如何加入spring osgi
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/slf4j-api-1.4.3.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/jcl104-over-slf4j-1.4.3.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/spring-core-2.5.1.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/spring-beans-2.5.1.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/spring-context-2.5.1.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/spring-aop-2.
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/lib/aopalliance.osgi-1.0-SNAPSHOT.jar5.1.jar

-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/dist/spring-osgi-core-1.0.2.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/dist/spring-osgi-extender-1.0.2.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/dist/spring-osgi-io-1.0.2.jar



test (the spring samples service):以下测试见2,3步骤
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/src/samples/simple-service/simple-service-bundle/target/simple-service-bundle-1.0.2.jar
-> start file:///home/jiangyy/workspace/spring-osgi-1.0.2/src/samples/simple-service/simple-service-bundle/target/simple-service-bundle-1.0.2.test.jar
 

 

2.定义服务:

下载spring-osgi包,找到sample/simpleservice,到src相对应目录下,运行:

mvn clean install,打包后将生成:

simple-service-bundle-1.0.2.jar

这个可以注册了

 

3.在其他jar 服务中注入服务

如何在其他jar中注入MyService实现:

写了个类,相当于spring bean,然后把刚才打好的包拷贝,改成以下的class文件,

package org.springframework.osgi.samples.simpleservicetest;

import org.springframework.osgi.samples.simpleservice.MyService;

public class MyTest {
     public void setMyService(MyService service) {
    	 System.out.println("invokeing");
    	 System.out.println(service.stringValue());
    	 System.out.println("end");
     }
}

MANIFEST.MF中引入 需要的包 。在META-INF中添加spring /bean.xml,并定义该测试 类:

xml 代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns:osgi="http://www.springframework.org/schema/osgi"

  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

                      http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">



<osgi:reference id="simpleServiceOsgi" interface="org.springframework.osgi.samples.simpleservice.MyService"/> 
<bean id="testEntityRegister" class="org.springframework.osgi.samples.simpleservicetest.MyTest">
   <property name="myService" ref="simpleServiceOsgi" />
</bean>


</beans>
  修改.MF文件,然后在Felix中start:


4.附录

spring sampleservice的MANIFEST.MF文件:

Bundle-Version: 1.0
Bundle-SymbolicName: org.springframework.osgi.samples.simpleservice
Bundle-Name: Simple-Service-Sample
Bundle-Vendor: Spring Framework
Export-Package: org.springframework.osgi.samples.simpleservice
Bundle-ManifestVersion: 2

META-INF/springsample.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

  <!-- regular spring configuration file defining simple service
       bean. We've kept the osgi definitions in a separate 
       configuration file so that this file can easily be used
       for testing outside of an OSGi environment -->

  <bean name="simpleService" class="org.springframework.osgi.samples.simpleservice.impl.MyServiceImpl" />

  <osgi:service id="simpleServiceOsgi" ref="simpleService"
    interface="org.springframework.osgi.samples.simpleservice.MyService" />

</beans>
 

 

分享到:
评论

相关推荐

    Spring OSGI 快速入门中文教程

    - **样例项目**:"samples"文件夹可能包含各种示例项目,如HelloWorld服务和消费者。 - **构建与运行**:使用Maven或Gradle构建Bundle,然后在OSGi运行时环境中启动。 通过阅读《Spring OSGi 入门.pdf》和实践...

    学习SpringDM+OSGI的总结

    在介绍OSGI的基础知识后,接下来通过一个简单的HelloWorld示例来深入理解OSGI的工作原理。 1. **建立第一个Plug-in项目**:使用Eclipse自带的OSGI框架建立第一个插件项目。该插件项目会在控制台输出“HelloWorld”...

    osgi gemini blueprint环境

    "springdm"可能是旧版Spring Dynamic Modules的简称,它是Spring对OSGi的支持,而“helloworld”通常是入门级的示例,用于演示基本的配置和功能。"client"可能是一个客户端应用,展示了如何消费在OSGi环境中发布的...

    关于OSGI的详细资料

    为了搭建一个基本的OSGi环境并创建一个简单的HelloWorld示例,我们需要以下必要的bundles: 1. **org.mortbay.jetty_5.1.14**:这是一个Jetty容器,如果不需要外部Web服务器,则是必须的。 2. **org.eclipse.osgi_...

    Enterprise OSGi in Action

    第一部分:编程超越“Hello World” 1. OSGi与企业应用——为什么现在? - 介绍OSGi在企业Java应用中的作用和重要性。 - 讨论为什么现在是采用OSGi技术来构建企业应用的恰当时机。 2. 开发一个简单的基于OSGi的Web...

    转载osgi学习,开发框架

    对于初学者,了解OSGi的运行机制和通过“Hello World”程序实践是入门的好方法。通过这个过程,开发者可以深入理解OSGi如何处理模块之间的依赖关系,以及如何动态地管理服务和组件。总的来说,OSGi不仅是一个框架,...

    Jetty中文手册

    Jetty和Maven HelloWorld教程 Jetty(6)入门 (www.itjungle.com) Jetty Start.jar 配置Jetty 如何设置上下文(Context Path) 如何知道使用了那些jar包 如何配置SSL 如何使用非root用户监听80端口 如何配置连接器...

    apache cxf 工程

    Apache CXF 是一个开源的...对于初学者来说,从简单的"Hello World"服务开始,逐步熟悉CXF的各个部分,是学习的最佳路径。同时,不断探索CXF的高级特性和最佳实践,将有助于提升你在企业级Web服务开发中的专业能力。

    Eclipse插件开发学习笔记全篇+源码.rar

    1. 创建第一个插件:从简单的“Hello, World”插件开始,了解插件开发的基本流程。 2. UI组件:学习如何创建和使用Eclipse的视图、编辑器、透视图和小部件。 3. 事件处理:掌握如何响应用户的交互,如菜单点击和键盘...

    JAVA上百实例源码以及开源项目源代码

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

Global site tag (gtag.js) - Google Analytics