2012-11-14 105 views
2

我使用Karaf 2.2.8,我的代码中,我阅读和使用Apache POI excel文件需要工作的Apache POI 3.8 OSGi包为Apache 2.2.8 karaf

try{ 

Workbook wb=WorkbookFactory.create(inp); 

} 

应用程序正在Tomcat中细6和Tomcat 7采用POI-OOXML-3.8.jar

在karaf 2.2.8: -

使用ServiceMix的束时***给我

ClassNotFoundException: org.apache.poi.ss.usermodel.WorkbookFactory not found by org.apache.servicemix.bundles.poi 

***使用Apache POI

Unable to resolve 266.0: missing requirement [266.0] package; (package=org.apache.poi)) 

命令用来安装ServiceMix的POI时: - :

install -s mvn:org.apache.poi/poi-ooxml/3.8; 
install -s mvn:org.apache.poi/poi-ooxml-schemas/3.8; 
install -s mvn:org.apache.poi/poi/3.8; 
install -s mvn:commons-codec/commons-codec/1.5; 
install -s mvn:dom4j/dom4j/1.6.1; 
install -s mvn:stax/stax-api/1.0.1; 
install -s mvn:org.apache.xmlbeans/xmlbeans/2.3.0; 

任何帮助,请

- 用来安装Apache POI

install -s mvn:avalon-framework/avalon-framework/4.1.3; 
install -s mvn:junit/junit/3.8.2; 
install -s mvn:commons-codec/commons-codec/1.5; 
install -s mvn:commons-logging/commons-logging/1.1; 
install -s mvn:javax.servlet/servlet-api/2.3; 
install -s mvn:log4j/log4j/1.2.13; 
install -s mvn:logkit/LogKit/1.2; 
install -s mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi/3.8_1; 

命令

+0

我想通了。 我不必将apache poi作为一个osgi包。我把它添加到里面karaf的 “lib” 目录下,并出口所需的软件包如下: - karaf.home的/ etc/custom.properties karaf.systemBundlesStartLevel = 50 ... com.sun.jndi.ldap ; \ oracle.jdbc; \ org.apache.poi.ss.usermodel; \ org.apache.poi; 现在它工作的很好 –

+0

您应该将其发布为答案而不是评论,因此其他人在您的帖子中发现该问题更容易 – Gagravarr

+2

我不建议将这些类型的jar放入lib夹。对于你来说,将这些罐子放入应用程序包可能更容易。 –

回答

0

我想通了。我不必将apache poi作为一个osgi包。 我把它添加到里面karaf的“lib”目录下,并远销

所需的软件包如下: -

karaf.home/etc/custom.properties 
karaf.systemBundlesStartLevel=50 
... 
com.sun.jndi.ldap; \ 
oracle.jdbc; \ 
org.apache.poi.ss.usermodel; \ 
org.apache.poi; 

现在它的工作的伟大

+0

看来你的解决方案并不适合我。请在下面找到以下错误: 执行命令时出错:无法启动捆绑mvn:在功能中:捆绑中的未解析约束[306]:无法解析306.0:缺少需求[306.0] osgi.wiring.package; (osgi.wiring.package = org.apache.poi .xssf.usermodel) – Arun