osgi - 如何为 Apache POI 3.8 创建一个可用的 OSGI 包?

标签 osgi apache-poi

我的目标是创建 Excel 2007 文档 (XLSX) 在 Eclipse RCP 环境中(Excel 2003 很简单)。我不想将 POI jar 放在/lib 文件夹中 ,相反,我想使用目标定义中的工作 POI OSGI 包。

到目前为止,我所有的尝试都未能创建一个可用的 OSGI 包 POI 3.8 .到目前为止我做了什么:

  • 我将所有相关的 JAR 文件与 Ant 合并 zip 任务:
  • poi-3.8-beta3-20110606.jar
  • poi-ooxml-3.8-beta3-20110606.jar
  • poi-ooxml-schemas-3.8-beta3-20110606.jar
  • poi-scratchpad-3.8-beta3-20110606.jar
  • 我跑了 邦德带有 wrap 参数的工具:java -jar biz.aQute.bnd.jar wrap ./poi-3.8-beta3-20110606-merged.jar
  • 我不得不将 jars 单独捆绑在/ooxml-lib 文件夹中,使用 bnd:
  • xmlbeans-2.3.0.jar
  • stax-api-1.0.1.jar
  • dom4j-1.6.1.jar
  • 这导致 org.w3c.dom.Node 的 ClassNotFoundExceptions因为 xmlbeans-2.3.0.jar 从这个包中导出了四个类 org.w3c.dom .通常 JavaSE-RuntimeEnvironment 会导出这些。
  • 我删除了 org/w3c/dom来自 xmlbeans-2.3.0.jar 的文件夹并重新捆绑了 jar,但我得到了其他 ClassNotFoundExceptions。

  • 这是我到目前为止的地方。我认为使用 bnd wrap 是不够的。可能我必须创建一个 bnd.properties 文件并有明确的 Export-Package/Import-Package 语句,但哪个有效?

    那么,有没有人成功地创建了一个有效的 POI 3.8 OSGI 包?

    最佳答案

    如果您不需要该特定版本,只需使用 http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.org.apache.poi&version=3.0.2.FINAL该页面列出了它的依赖项等(如果您使用的是 Maven/Ivy,您也可以下载或引用)

    可能是 http://engroup.sourceforge.net/maven2/engroup/osgi/commons/poi-osgi/3.1/http://ebr.springsource.com/repository/app/search?query=poi可以提供一些灵感(在第一个链接中有一个 maven POM,列出了 bundle plugin 部分中的 (bnd) 指令)。

    你为什么要合并 jar ?为什么不尝试单独包装每个?

    要尝试的第二件事是使用现有的 OSGi jar xmlbeans , stax-apidom4j

    您还可以使用“org.osgi.framework.system.packages”配置 JRE(系统包)导出的内容 - 因此您可以选择不导出 org.w3c.dom

    关于osgi - 如何为 Apache POI 3.8 创建一个可用的 OSGI 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063336/

    相关文章:

    java - 如何使用 OpenJDK 7 编译 mavenized OSGi 4.3 包?

    java - LoggerFactory无法获取Logger

    java - Apache POI Java 的缺失单元策略

    java - 如何获取自定义元数据属性的值

    java - OSGI JNDI 是否允许与来自非 OSGI 代码的 JNDI 调用共存?

    java - 使用 Apache POI 复制 Excel 工作表

    java - Java从Word文档中读取.docx格式的数据作为每个字段并保存到数据库中

    java - 如何使用 apache poi 根据行数将一个 excel 文件拆分为多个文件?

    JavaFX Apache POI Excel 登录程序

    java - 在 Eclipse 中使用多个 OSGi 包