注意:我刚刚发现了这个问题,但它是针对更老版本的POI的。但显然这是一个持续的问题。
<project ..>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.1.7</version>
<packaging>bundle</packaging>
<name>OSGi-wrapped poi-ooxml</name>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>com.github.virtuald</groupId>
<artifactId>curvesapi</artifactId>
<version>1.04</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>org.apache.poi.*</Export-Package>
<!--
One important thing to note: if you are not exporting a package, you add it to the Private-Package instruction.
Otherwise, the classes inside the package will not be copied to your bundle, as the default value of this instruction is empty.
-->
<Private-Package>org.openxmlformats.*,org.apache.commons.*,com.graphbuilder.curve.*,org.apache.xmlbeans.*,schemaorg_apache_xmlbeans.*,schemasMicrosoftComOfficeExcel.*</Private-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
public void write(OutputStream out) throws IOException {
Runnable sheetCreator = new Runnable() {
@Override
public void run() {
Workbook workbook = null;
try {
// 3.16, but now obsolete
// POIXMLTypeLoader.setClassLoader(CTTable.class.getClassLoader());
workbook = new XSSFWorkbook();
buildWorkbook(workbook);
workbook.write(out);
out.flush();
} catch (Throwable t) {
// log
} finally {
if (workbook != null) {
try {
workbook.close();
} catch (IOException e) {
// log
}
}
}
}
};
try {
Thread thread = Thread.currentThread();
ClassLoader cl = thread.getContextClassLoader();
Thread th = new Thread(sheetCreator);
th.setContextClassLoader(cl.getParent());
th.start();
th.join();
} catch (Throwable t) {
// log
}
}
问题内容: 是否可以在OSGi应用程序中使用非osgi库? 例如,我正在开发一个基于语义的搜索引擎,并且正在为其使用第三方自然语言处理库(http://wiki.opencog.org/w/RelEx_Dependency_Relationship_Extractor)。 是否可以在OSGi应用程序中连接不支持OSGi(作为几个jar文件)的库? 问题答案: 如先前答案中所写,如果要在包中使用其他
我的应用程序有一些OSGI模块和一个非OSGI部分。我尝试通过ApacheAries的JNDI在非osgi子系统中查找osgi服务。我用玻璃鱼。 我的蓝图xml如下所示: 我尝试了以下查找: 我部署了4个捆绑包: Apache Aries Util 但我得到一个例外: 我忘带包裹了吗?有人能帮我吗?
我需要一些关于如何使用ojdbc8(我尝试使用ojdbc6,ojdbc7也从未工作过)作为OSGi包进行部署的线索,我可以使用class.load()加载类,但是在运行时会出现以下错误: 这发生在oracle jdbc驱动程序中,在SQLStateMapping类中,classr试图使用SQLStateMapping.class.GetResourceStream(“error..xml”)获取资
OSGi 技术是面向 Java 的动态模型系统。OSGi 服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。 Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。 这些组件能够组装进一个应用和部署中。 OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能。 为了最小化耦合度和促使这些耦合度可
我们面临的最大问题是,我们无法找出如何构造项目C,以使其在项目A和B中都能正常工作。在项目A中,我们希望maven能像往常一样工作,并根据需要降低依赖项。但我们也希望在项目B(也许结合Nexus+Tycho??)中实现该功能。 我们应该如何解决这个问题。我还没有找到一个好的解决办法如何做这件事。我已经在maven中尝试了apache felix捆绑插件,但不能让它像我想要的那样工作。这是正确的解决
问题内容: 而不是将数据库操作分散在四个(osgi)包中,所有操作都在这里稍有不同。我想创建一个负责所有持久性问题的(简单)OSGi捆绑包。我觉得这并不像听起来那么简单,因为“每捆都有唯一的类加载器”。因此,如果有人知道这种问题的解决方案,我将非常感激。 问题答案: (如果您正在使用hibernate注释) 在通知Hibernate捆绑包有关注释类的信息后,保存所有Entities类加载器。 然后