问题:
使用jar命令生成jar包当作OSGi bundle,装载可以成功。
但在使用start n 启动的时候,出现
The Activator for bundle xxx is invalid 的错误。
寻找解决办法
在网上找了一圈,没有答案.(也许没找对地方.)
在 http://wiki.bioclipse.net/index.php?title=FAQ&Itemid=17#Eclispe_says:_The_Activator_for_bundle_xxx.xxx.xxx_is_invalid 看到提示,但是没发现bundle和PDE有什么关系.
在 http://wiki.eclipse.org/index.php/PDE 有这样一行字
引用
Use New > Project > Plug-in Development > Plug-in from existing JAR archive. That will turn one or more jar files into a single jar plug-in.
照着做了,建立一个工程,引入jar,然后在导出.
导出步骤:
export > Plug-in Development > Deployable plug-ins and fragments > Archive file > Finish 得到一个jar.
在Equinox安装启动,正常。
对比两个 manifest.mf,有一点不同:
正确的manifest.mf中包含一行:
Bundle-ClassPath: . (注意:冒号后面有一个点)
尝试将不正确的manifest.mf最后加入这行,保存,执行jar ...
发现这行配置被过滤掉了.
解决办法
在manifest.mf中,
把
Bundle-ClassPath: .
放在 Bundle-Version: 1.0.0 前面
OK!
分享到:
相关推荐
标题中的“Jar转换为Bundle工具”指的是将传统的Java Archive (JAR) 文件转换为OSGI Bundle的过程。OSGI(Open Service Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个Java虚拟机(JVM)上运行...
OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个JVM上运行多个版本的相同库或服务,从而解决了不同版本jar包冲突的问题。本示例通过一个名为“myself”的工程,展示了如何...
osgi发布http服务的各种bundle,各种jar包,全全全~非常好用的技术包 包括:org.eclipse.equinox.http_1.0.0.v20060601a.jar org.eclipse.equinox.ds_1.0.0.v20060601a.jar org.eclipse.equinox.servlet.api_1.0.0...
OSGI的核心概念是bundle,它类似于Java的jar文件,但具有更强大的功能和灵活性。一个OSGI bundle包含类、资源以及元数据,这些元数据描述了bundle如何与其他bundle交互。理解OSGI bundle是深入学习OSGI框架的关键。 ...
1. **Bundle基础知识**:一个OSGi bundle本质上就是一个遵循特定规范的JAR文件,其中包含了MANIFEST.MF文件。这个文件包含了关于bundle的重要元数据,如Bundle-SymbolicName、Bundle-Version和Export-Package等。...
6. **开发和部署**: 使用这些jar文件,开发者可以按照博客"OSGi环境下建立Web工程的Hello World"中的步骤,创建并部署OSGI兼容的Web应用。这通常涉及编写bundle的MANIFEST.MF文件来声明导出和导入的包,以及如何配置...
Bundle的元数据由Bundle-Manifest描述,包括Bundle-Activator(激活器类)、Export-Package(导出的包,用于提供服务)和Import-Package(导入的包,依赖的服务)等。 对比于CAR(Component Archive),OSGi Bundle...
在IT领域,OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它...这涉及到理解Bundle的生命周期、MANIFEST.MF文件的编写、Eclipse插件的使用,以及Java代码如何与OSGi框架交互等核心知识点。
Bundle是OSGi的核心构建块,类似于Java中的jar文件,但包含了元数据,使其能在OSGi环境中作为一个独立的模块运行。`org.eclipse.osgi_3.7.2.v20120110-1415.jar`是一个典型的OSGi bundle,由Eclipse项目提供,包含了...
标题“spring-dm-osgi整合jar包”和描述“spring-dm整合osgi所需所有jar包”提及的核心知识点是Spring Dynamic Modules(简称Spring DM)与OSGi(Open Service Gateway Initiative)框架的集成。这两个技术在Java...
3. **配置管理**:OSGI的配置管理允许动态配置Bundle,这需要在Tomcat的配置文件中进行相应的设置,以便在启动或运行时更新Bundle的配置。 4. **Web应用部署**:传统的WAR文件可以在OSGI环境中部署为Bundle。这通常...
4. **构建和部署**:Eclipse可以自动构建OSGi Bundle,生成`.jar`文件。在Equinox运行时环境中部署Bundle,可以通过控制台命令或图形界面操作。 5. **运行和调试**:利用Eclipse的调试器,可以方便地对Bundle进行...
1. **创建bundle项目**:使用如BndTools这样的工具,或者直接使用Maven或Gradle的OSGi插件,来设置bundle的MANIFEST.MF文件,定义bundle的导出和导入包。 2. **定义服务和组件**:使用DS或Spring的XML配置,声明...
OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个JVM上动态地发现、加载、卸载和管理软件模块,称为bundle。在OSGI环境中,每个bundle都是一个独立的代码单元,具有自己的类...
osgi多个bundle之间读取同一配置文件,需要单独添加一个用来读取配置文件的bundle
spring-osgi-core-1.2.1.jar spring-osgi-core-1.2.1-sources.jar spring-osgi-extender-1.2.1.jar spring-osgi-extender-1.2.1-sources.jar spring-osgi-io-1.2.1.jar spring-osgi-io-1.2.1-sources.jar spring-...
5. `target`: Maven构建后生成的输出目录,包括编译后的class文件和最终的OSGi捆绑包(可能以.jar或.bundle为扩展名)。 总结一下,这个项目旨在教授如何使用Maven创建一个基本的OSGi捆绑包,以及如何在OSGi容器中...
OSGi(Open Services Gateway Initiative)是一种Java模块化系统和服务平台,它允许开发人员将应用程序分解为可独立更新和管理的模块。这个平台的核心是它的模块系统,也称为OSGi框架,它提供了一种动态、模块化的...
OSGI进阶资料、OSGI实战资料,资料格式为pdf,包org.eclipse.equinox.http_1.0.0.v20060601a.jar 和org.eclipse.equinox.servlet.api_1.0.0.v20060601a.jar
这通常会包含bundle的初始化类,它定义了bundle的生命周期方法,如start()和stop(),以及bundle的元数据,例如Bundle-Activator和Export-Package等。这些元数据指示了bundle如何启动和暴露其服务。通过查看源码,...