2012-11-14 60 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