来自:http://fair-jm.iteye.com 转截请注明出处
笔记一:http://fair-jm.iteye.com/blog/1988348
本文对应书本5.1.3的内容
书本中通过CVS下载的源码
但是笔者实践的时候发现无法下载...地址已经失效了(也许是笔者的失误输错地址所致)
可以用git下载
地址是:
http://git.eclipse.org/c/equinox
进入需要下载的组件的页面 在最下面有git clone的地址
http://git.eclipse.org/c/equinox/rt.equinox.framework.git/ 写道
Clone
git://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
ssh://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
http://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
git://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
ssh://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
http://git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
在eclipse中下载很简单 打开git仓库的面板 输入地址即可
选择需要的导入就可以了
接下来配置run configuration
和书中一样这里截图略过:
接下来是dev.properties文件和conf.ini文件 如下:
BundleHelloworld=bin org.eclipse.osgi=bin @ignoredot@=true
conf.ini:
#和书中相比多了很多其他的bundle 这些是启动console必需的 osgi.bundles=reference:file\:G:/osgi_workbench/test/BundleHelloworld@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.apache.felix.gogo.command_0.10.0.v201209301215.jar@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.apache.felix.gogo.shell_0.10.0.v201212101605.jar@start,reference:file\:E:/eclipseForEE/osgi_test/eclipse/plugins/org.eclipse.equinox.console_1.0.100.v20130429-0953.jar@start osgi.bundles.defaultStartLevel=4 osgi.framework=file:H:/repository/git/rt.equinox.framework/rt.equinox.framework/bundles/org.eclipse.osgi #osgi.framework=file/:E:/eclipseForEE/osgi_test/eclipse/plugins/org.eclipse.osgi_3.9.1.v20130814-1242.jar eclipse.ignoreApp=true osgi.noShutdown=true osgi.console=
有关以上比书本上多的那几个jar 看:
可以直接用eclipse的plugins文件夹下的
没有那几个jar BundleHelloworld可以运行 但不会出现 osgi>
并且会有错误信息 如下:
log 写道
!SESSION 2013-12-23 13:33:04.949 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.7.0_40
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Command-line arguments: -dev file:E:/eclipseForEE/osgi_test/config/dev.properties
!ENTRY org.eclipse.osgi 4 0 2013-12-23 13:33:05.347
!MESSAGE Could not find bundle: false
!STACK 0
org.osgi.framework.BundleException: Could not find bundle: false
at org.eclipse.core.runtime.internal.adaptor.ConsoleManager.checkForConsoleBundle(ConsoleManager.java:58)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:323)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:222)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
eclipse.buildId=unknown
java.version=1.7.0_40
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Command-line arguments: -dev file:E:/eclipseForEE/osgi_test/config/dev.properties
!ENTRY org.eclipse.osgi 4 0 2013-12-23 13:33:05.347
!MESSAGE Could not find bundle: false
!STACK 0
org.osgi.framework.BundleException: Could not find bundle: false
at org.eclipse.core.runtime.internal.adaptor.ConsoleManager.checkForConsoleBundle(ConsoleManager.java:58)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:323)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:222)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
注意bundle中的文件前应该有 reference:file: 不然会提示找不到
在以上新建的java application中点run 会出现以下信息就代表运行成功:
相关推荐
在实际的开发和应用过程中,开发者需要理解OSGi的原理并掌握其最佳实践。这包括了解如何构建和管理模块层、如何控制生命周期层以及如何实现服务层的通信。通过OSGi框架,开发者能够创建具有高度模块化和动态化的Java...
8. **最佳实践**:最后,笔记可能分享了一些最佳实践,指导开发者如何有效地在OSGi环境中使用Spring,以提高开发效率和应用质量。 由于没有具体的压缩包文件内容,以上内容主要是基于标题和标签的推测。如果想要...
在《OSGI进阶.pdf》这本书中,可能涵盖了更深入的话题,比如bundle的打包和部署、服务注册与查找、bundle间通信的协议(如白板模式和Declarative Services)以及如何使用OSGi进行企业级应用开发。这本书可能会详细...
在本篇“osgi学习笔记(二)”中,我们将深入探讨OSGi(Open Services Gateway Initiative)框架的核心概念、工作原理以及如何在实际项目中应用它。OSGi是一种Java模块化系统,它允许开发人员创建可独立更新和依赖...
标题中的“OSGI研究笔记1 - Equinox ServletBridge模式下调用Datasource”表明了这篇文章将探讨如何在OSGI(Open Service Gateway Initiative)环境下,利用Equinox的ServletBridge模块来访问和使用DataSource。...
同时,“工具”可能是指像Eclipse PDE或SpringSource Tool Suite这样的集成开发环境,它们提供了专门的支持来简化OSGi和SpringDM应用的开发过程。 通过以上步骤,开发者可以利用SpringDM的强大功能在OSGi环境中构建...
虽然具体内容没有提供,但通常这样的文章会包含OSGi的基本概念、工作原理、如何使用OSGi进行开发、以及可能的一些最佳实践或常见问题解答。 标签“源码”暗示了资料可能涉及OSGi框架的内部实现或者如何阅读和理解...
此外,Bndtools是一个强大的集成开发环境插件,它支持OSGi项目的创建、构建和调试,对于理解和操作OSGi服务非常有帮助。 总结,OSGi服务是OSGi框架的核心特性之一,它使得模块间的通信变得简单且可控。通过对服务的...
SpringDM(Spring Dynamic Modules)是Spring框架对OSGi的支持,它简化了在OSGi环境中开发和管理应用程序的过程。 这篇笔记可能讨论了以下几个关键知识点: 1. **OSGi基础**:首先,理解OSGi的基本概念是至关重要...
在SpringDM(Spring Dynamic Modules)框架中,OSGi(Open Service Gateway Initiative)服务注册与引用是核心功能之一,它使得模块化系统中的组件能够互相发现并交互。本篇笔记将探讨如何在OSGi环境中注册服务以及...
### Fuse ESB 4.3.1 使用笔记 #### 一、概述 Fuse ESB (Enterprise Service Bus) 4.3.1 是一个强大的企业级服务总线平台,基于Apache Karaf容器构建,用于集成不同的应用程序和服务。它支持多种集成模式和技术栈,...
通过学习这个压缩包中的源代码,你可以深入理解Eclipse插件开发的各个方面,从而能够构建自己的定制化开发环境或独立应用程序。对于Java SWT标签,这意味着你会专注于使用Java和SWT库来创建用户界面,这将增强你的...