`
snoopy7713
  • 浏览: 1152671 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

OSGI如何读取插件中的资源文件

    博客分类:
  • OSGi
 
阅读更多

思路就是通过bundleContext来取得资源。
首先,要在对应的插件中先建立一个Activator需要实现BundleActivator接口,
代码

Java代码  收藏代码
  1. import  org.osgi.framework.BundleActivator;  
  2. import  org.osgi.framework.BundleContext;  
  3.   
  4. public   class  Activator  implements  BundleActivator {  
  5.   
  6.   private   static  BundleContext bundleContext;  
  7.   
  8.   public   static  BundleContext getBundleContext() {  
  9.     return  bundleContext;  
  10.   }  
  11.   
  12.   public   void  start(BundleContext context)  throws  Exception {  
  13.      Activator.bundleContext = context;     
  14.   }  
  15.   
  16.     public   void  stop(BundleContext context)  throws  Exception {  
  17.           
  18.     }  
  19. }  



然后再需要查找资源的地方,取得bundleContext,通过bundleContext的getResource方法取得URL类型的resource,代码:

Java代码  收藏代码
  1. public   static  InputStream getResourceByContext(String path) {  
  2.         try  {  
  3.             BundleContext bundleContext = Activator.getBundleContext();  
  4.             URL resource = bundleContext.getBundle().getResource("/web"  + path);  
  5.             InputStream in = resource.openStream();  
  6.             if  (in ==  null ) {  
  7.                 String msg = "\nNot found \""  + path +  "\";" ;  
  8.                 log.error(msg);  
  9.             }  
  10.             return  in;  
  11.         } catch  (IOException e) {  
  12.             e.printStackTrace();  
  13.         } finally  {  
  14.         }  
  15.         return   null ;  
  16.     }  



注意这里的路径,是从直接写工程文件夹下开始写。


另外,楼下说的
Thread.currentThread().getContextClassLoader().getResource()
也是可以取到的

分享到:
评论

相关推荐

    OSGI 实例eclipse插件开发

    8. `org.springframework.osgi.io`:这个模块提供了OSGI环境下的资源读取和加载功能,如读取bundle中的配置文件。 9. `org.springframework.osgi.core`:这是Spring OSGI的核心模块,包含了一些基础的OSGI服务和...

    Osgi的简单实现

    - 构建bundle:使用构建工具如Maven或Gradle,配置相应的Osgi插件来生成bundle JAR文件。 4. **Eclipse中的Osgi实现** 描述中提到的"简单用代码解释了过程"可能指的是通过Eclipse插件开发的过程。在Eclipse中,...

    提取源文件和class文件的Eclipse插件

    通常,Eclipse插件的开发会包括一个或多个插件项目,每个项目包含plugin.xml定义插件元数据,以及src目录下的源代码和资源文件。安装包可能是一个.zip或.jar文件,用户可以通过Eclipse的“Install New Software”...

    jira8.4.1的plugin加载卸载机制

    3. **资源清理**:卸载过程中,Jira会释放插件占用的所有资源,包括数据库记录、文件系统中的文件等。 4. **物理删除**:最后,Jira会从插件目录中删除插件的文件和目录,完成卸载过程。 四、Spider插件示例 ...

    eclipse插件开发实战

    在启动时,插件加载器会读取 `plugin.xml` 文件中的信息,从而构建起整个插件体系。 - **OSGi (Open Services Gateway Initiative)**:作为 Eclipse 插件架构的基础层,OSGi 提供了一种动态模块化环境,使得插件...

    GreetCTK_CTK插件框架_consonant7x3_

    启动后,框架会读取所有插件的清单文件,识别其依赖关系,并准备它们的加载顺序。 第三步,获取插件上下文。插件上下文是每个插件与框架交互的主要接口,它提供了注册服务、查找服务、获取配置和其他插件相关操作的...

    Subclipse eclipse svn插件

    - `content.jar`和`artifacts.jar`包含插件的元数据和实际内容,这些文件在安装过程中被Eclipse读取。 - `content.xml.xz`和`artifacts.xml.xz`是压缩的XML文件,存储了插件的详细信息,如版本、依赖、描述等。 - `...

    eclispe插件自动下载源码.zip

    这个插件对于开发者来说非常有用,特别是在项目中需要频繁更新或引入新的库文件时,它可以自动帮助下载所需的jar包,节省手动操作的时间。 插件的核心功能是自动化处理Java项目的依赖管理。在传统的开发流程中,...

    com.tm.tiamaestools_buriedin8_插件开发_

    在Eclipse插件开发中,这样的包结构通常包含插件的源代码、资源文件、元数据等。 6. **使用流程**: 开发者首先需要将这个插件安装到Eclipse中,然后在Eclipse的插件界面找到并启用它。接着,配置数据库连接,选择...

    tree 通过插件加载图片

    标题中的“tree 通过插件加载图片”指的是在软件开发中,如何利用特定的插件或者功能,在树形结构(Tree)中加载和显示图片。树形结构是一种常见的数据展示方式,尤其在文件管理器、数据库浏览器或者GUI应用程序中,...

    kettle资源包kettle资源包kettle资源包kettle资源包kettle资源包kettle资源包kettle资源包

    3. **数据加载(Loading)**:处理后的数据可以被加载到新的数据仓库、数据库或者文件系统中。Kettle支持批量和增量加载,确保高效且低影响地将数据导入目标系统。 4. **工作流(Job)和转换(Transformation)**:...

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    equinox SDK Neon

    4. **content.xml.xz**和**artifacts.xml.xz**:这些是经过xz压缩的版本,用于减小文件大小,节省存储空间,同时不影响文件内容的读取。xz是一种高压缩比的数据压缩格式,适用于大文件的存储和传输。 5. **plugins*...

    eclipse vi plugin

    Eclipse的插件体系基于OSGi模块化系统,每个插件都是一个独立的JAR文件或目录,包含了实现特定功能的Java代码和资源。在这个目录下,你会找到Eclipse Vi Plugin的核心代码和资源。 在使用Eclipse Vi Plugin时,你...

    rcp开发小知识

    - **启动流程**: 当系统运行后,会先读取MANIFEST.MF文件中的`Bundle-Activator`属性来确定启动类。 - **示例**: `MyRCPPlugin`作为启动类,它实现了必要的接口,并在`plugin.xml`中进行了配置。 通过上述详细介绍...

    birt integration

    - 设计引擎读取`.rptdesign`文件,将报表设计转换为执行时的数据结构。 - 报告引擎使用这些数据结构来渲染报表,并支持多种输出格式,如PDF、HTML、Excel等。 2. **API概述** - **OSGi启动和引擎创建**:使用...

    eclipse rcp excel表转mysql程序(源码)

    - 为了从Excel文件中读取数据,程序可能使用了Apache POI库,这是一个Java API,可以处理Microsoft Office格式的文件。 - POI提供了HSSF(Horrible Spreadsheet Format)API来处理.xls格式,XSSF(XML Spreadsheet...

    基于Java的实例源码-YOYOPlayer网络播放器源代码.zip

    通常,完整的源码包会包含多个文件夹和文件,如项目的源代码文件(.java)、资源文件(如音频、视频、图片)、配置文件(如XML或.properties)、构建脚本(如Ant或Maven的pom.xml)以及可能的测试代码和文档。...

    jar的包的点点滴滴

    `features`可能包含描述如何安装和配置Apache POI的特性文件,而`plugins`可能包含实际的插件实现,使得Apache POI能在特定环境中运行。 Apache POI的工作原理涉及解析Office文档的二进制格式,如Excel的BIFF...

    修改myeclipse默认工作空间

    2. **查找并修改工作空间路径**:在文件中找到大约第6行的内容,其格式类似于`osgi.instance.area.default=@user.home/Workspaces/MyEclipse 8.5`。这一行指定了MyEclipse的默认工作空间路径。 3. **更改路径**:...

Global site tag (gtag.js) - Google Analytics