`
shutiao2008
  • 浏览: 211665 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在Eclipse中调试Felix

阅读更多
因为正看一个基于Felix的开源程序,今天搭配了Felix的开发环境。
如何利用Eclipse调试Felix bundle,在Felix的网站上有介绍。可见网址http://felix.apache.org/site/integrating-felix-with-eclipse.html。

另外,在《OSGi原理与最佳实践》上也有关于搭配Felix 开发环境两种方法的介绍。(应该说后者其实就是copy前者Felix网站上的东东)。

但是这两个在讲完环境搭配之后如何调试却一笔带过,反而让人搭配了环境却不知如何用。在此总结一下自己的心得。

这里对不采用Pax runner的方法做点补充。

备注:Pax cursor已经更新为Pax runner,具体内容就去google吧。

第一步:搭配一个专用于调试的Java Project——felix。

按照http://felix.apache.org/site/integrating-felix-with-eclipse.html上的说明,建立一个java project。上面步骤将的非常清晰了。

按照他的步骤搭配完毕,将会获得一个专门用于调试bundle 程序的Java project——Felix。很明显,其实他就是吧Felix在eclipse中医project的形式运行而已,console窗口就是Felix的命令行窗口。操作当然相同。

我将这个称之为调试环境。注意不要再另外在该project中添加自己的东西了。

第二步:编写自己的程序。

因为Felix的bundle都是符合OSGI standard的,所以Felix下的bundle就是标准的OSGI bundle。如有怀疑这一点,可以去Felix的网站上常见问题里去找答案,提示一下第一个问题就是答案。

因此在eclipse中,我们新建Felix的bundle,可以利用Eclipse插件向导来做,只需要注意选择OSGI standard即可,在元文件编辑窗中不要去填写用于Equinox的那些属性就可以了。

具体步骤可以参考建立Eclipse 插件工程的步骤。这个Google一下即可。《osgi实战》也有介绍。

开发完自己的bundle之后。打包,Export为plug-in fragments。注意将Export的文件夹地址可以直接设置为刚才创建的Felix project中的bundle文件夹。当然也可以导出到某个位置再将其拷贝到该bundle目录下。

第三步:调试程序。

# 在你的程序中设置所需的断点。

# 启动Felix project,进入debug模式,注意确保先前设置的debug configuration正确无误。

   这样Felix 将会自动将bundle文件夹下你的bundle运行调试,如果你没有进入调试模式,会提示你进入。

# 此时,debug会出现找不到源文件,点击attach source,选择add project,然后选择刚才要调试的那个project的名称       即可。eclipse会自动搜索到源文件。如果你的debug窗口中正常显示了你的源程序,恭喜!成功了。你此时会发现程序

  正停留在你设置的断点处等待你调试。这时和调试普通程序没什么区别。

  如果你对程序进行了修改,那么重新打包一次至于bundle文件夹下,重新启动felix project 进入debug模式,Felix会自动导入你修改过的bundle。

如果要建立多个bundle,重复就行了。

总结:

# 先建立一个干干净净的Felix Javaproject作为调试环境。然后正常编写一个bundle,将其置于Felix下的bundle目录调试即可,最重要的是添加source路径使其能找到源码位置。

# 有人可能有不同意见,认为本人这样太麻烦了。当然,我们将这两个工程作为一个工程就可以调试,大可不必分开,但是如果你要调试很多bundle,这种优越性就显示出来了。

  @ 你只需要建一个Felix 调试环境,而不必为每个bundle都重复这个工作。

  @ 要知道调试一个bundle和调试多个bundle是不同的。当你编写的bundle相互有依赖关系,那你必然要把他们放到一个Felix下运行才对,想想每个bundle单独构建一个调试环境的结果会是什么?

  @ 你还可以在这个Felix下检查到多个bundle之间的交互,及早发现可能存在的冲突

  @ 当你把所有的bundle调试完成,也就同时部署完成了,只要没有问题,Felix project正是部署好你的项目的服务器,可以直接把该project拷贝出来用,当然删掉eclipse的专用文件就更干净了,如.setting文件夹。

  @ 另外,又想到一点,分为两个project,你在导出时无需更多设置直接导出为plug-in就是所要的bundle包。如果放在一个Java project中,将Java project导出为能用的bundle恐怕还需要你手动设置
分享到:
评论
1 楼 按图索骥GG 2010-12-24  
你好 我最近在调试OSGI的例子程序,能交流下吗?我是个菜鸟 邮箱是gg_0511@163.com

相关推荐

    eclipse安装包eclipse安装包

    在Eclipse中,你可以设置断点进行调试,通过“运行”菜单选择“运行配置”来启动你的程序。Eclipse提供强大的调试工具,包括单步执行、查看变量值、调用堆栈等。 10. **版本控制**: 对于团队协作,Eclipse支持...

    osgi felix plug in

    - **开发和调试OSGi应用通常需要使用特定的工具,如Eclipse PDE OSGi工具,Bndtools等,它们可以帮助构建、部署和调试bundle**。 - **对于Felix Plugin的开发,可能还需要了解如Maven或Gradle的构建工具,以及如何...

    OSGI中Hibernate扩展在felix中的应用

    标题"OSGI中Hibernate扩展在felix中的应用"指的是如何在OSGI Felix框架中整合和使用Hibernate。Felix是Apache软件基金会的一个项目,它是OSGI规范的开源实现。将Hibernate引入OSGI环境,可以实现更灵活的部署和管理...

    mysql\eclipse常见问题及解决方案

    解决方法是在调试配置中,除了选择自己的OSGI组件,还需要添加以下四个插件:org.apache.felix.gogo.command、org.apache.felix.gogo.runtime、org.apache.felix.gogo.shell以及org.eclipse.equinox.console。...

    Felix-2.0.2-src

    在Eclipse中导入这个源代码包,首先需要选择"File" -> "Import" -> "Existing Projects into Workspace",然后浏览找到解压后的“felix-src”目录。导入过程中,确保Eclipse已经安装了适当的Java开发工具(JDT)和...

    基于Eclipse开发OSGI的简单实例

    1. **创建SpringDM项目**:在Eclipse中,首先需要创建一个SpringDM工程。这可以通过新建一个OSGi Bundle项目,然后添加Spring Dynamic Module nature来实现。 2. **定义Spring配置**:编写Spring配置文件(如`...

    eclipse下构建spring与OSGI项目

    5. 测试和调试:在Eclipse的OSGi运行时环境中,如Equinox或Felix,启动并测试应用。可以使用OSGi控制台来查看和管理各个bundle的状态。 6. spring-depends文件:这个压缩包文件可能包含了项目中所依赖的Spring库...

    ogsi eclipse环境jar

    为了充分利用这个环境,开发者需要了解OSGi的基本概念,如bundles、manifest文件、服务生命周期和依赖注入,以及如何在Eclipse中配置和调试OSGi项目。同时,熟悉Eclipse的PDE工具将大大提升开发效率。

    非eclipse环境启动demo

    在非Eclipse环境中启动OSGI应用的Demo是一个实用的技术实践,尤其对于开发者来说,了解如何在没有集成开发环境(IDE)支持的情况下运行OSGI服务至关重要。这个Demo主要展示了如何在只有Java Development Kit (JDK)的...

    org.eclipse.4karaf:更改依赖项以与 felix 兼容

    在IT行业中,尤其是在Java生态体系内,Eclipse和Felix都是重要的开源项目。Eclipse是一个集成开发环境(IDE),而Felix是Apache软件基金会下的一个OSGi(Open Service Gateway Initiative)实现,它允许在Java应用中...

    eclipse maven 打包bundle

    在IT行业中,Eclipse和Maven是开发Java应用程序的两个重要工具。Eclipse是一个功能强大的集成开发环境(IDE),而Maven则是一个项目管理和综合工具,主要用于构建、依赖管理和项目信息管理。本篇文章将深入探讨如何...

    eclipse-neon-plugins

    在Eclipse Neon中,它可以用于调试和管理运行时的OSGi服务,方便开发者进行模块化开发和系统管理。 3. `org.eclipse.platform_4.6.3.v20170301-0400`: 这是Eclipse平台的核心库,包含了大部分基础组件和服务,如...

    spring roo代码生成工具的Eclipse工程

    spring roo的eclipse工程。可象普通java工程一样调试,跟Felix无关。注意其中的.lanches文件需要copy到你的eclipse workspace的.metadata\.plugins\org.eclipse.debug.core下

    OSGI Felix BndTools例子(一步一步指导)

    3. **运行时集成**:BndTools与Eclipse IDE紧密集成,可以在IDE内直接启动和调试OSGI运行时,实时查看bundle的状态和服务。 4. **动态更新**:允许开发者在运行时更新bundle,无需重启整个系统,提高了开发效率。 ...

    org.apache.felix.framework:Apache Felix OSGi框架

    在实际开发中,Apache Felix通常与Maven或Gradle等构建工具结合使用,通过插件生成符合OSGi规范的bundle。同时,IDE如Eclipse或IntelliJ IDEA也有对应的OSGi支持,可以帮助开发者更好地管理和调试OSGi应用。 总结来...

    Felix---Java开发笔记20100628

    在Felix的Java笔记中,可能涵盖了如何在MyEclipse中配置和使用这些框架,以及解决开发过程中遇到的问题和技巧。通过学习这些笔记,开发者可以深入理解Java开发的各个方面,提升自己的技能水平。

    Example.rar

    总结起来,"Example.rar"中的内容可能是某个基于Eclipse和Felix的OSGi项目,包含了源代码、配置文件、依赖库和构建输出,便于开发者进行开发、调试和打包。了解这些知识点有助于理解和操作这个压缩包中的内容。

    org.apache.felix.main:Apache Felix OSGi框架启动器

    在实际开发中,掌握Apache Felix OSGi框架启动器的使用,能帮助我们构建更灵活、可维护的Java应用。通过了解和实践上述知识点,开发者可以更好地利用OSGi的优势,如组件化开发、动态部署和版本控制,从而提升软件的...

Global site tag (gtag.js) - Google Analytics