2016-06-07 75 views
0

如何在項目中添加依賴項? OSGI + POI 在執行時該代碼如何將Org.apache.poi添加到Karafa中

import org.apache.poi.ss.usermodel.WorkbookFactory 

Workbook wb = WorkbookFactory.create(originalStream); 

後執行該代碼,會拋出錯誤

Method threw 'java.lang.ClassNotFoundException' exception. 
org.apache.poi.ss.usermodel.WorkbookFactory not found by wrap_mvn_org.apache.poi_poi_3.11 [761] 

我pom.xml中添加依賴

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml-schemas</artifactId> 
    <version>3.11</version> 
</dependency> 
<dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.6.0</version> 
</dependency> 
<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>ooxml-schemas</artifactId> 
     <version>1.1</version> 
</dependency> 
<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.11</version> 
</dependency> 
<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.11</version> 
</dependency> 

      <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 

      <version>${maven-bundle-plugin.version}</version> 
      <extensions>true</extensions> 
      <configuration> 
       <instructions> 
        <DynamicImport-Package>*</DynamicImport-Package> 
       </instructions> 
      </configuration> 
     </plugin> 

安裝班德爾karaf:

bundle:install wrap:mvn:org.apache.poi/poi/3.11 
bundle:install wrap:mvn:org.apache.poi/poi-ooxml/3.11 
bundle:install wrap:mvn:org.apache.poi/poi-ooxml-schemas/3.11 
bundle:install wrap:mvn:org.apache.poi/ooxml-schemas/1.1 

在Karaf成功的所有包安裝並運行

+0

注意 org.apache.poi.ss.usermodel.WorkbookFactory不wrap_mvn_org.apache.poi_poi_3.11 [761] 搜索發現不捆綁 –

+2

也許你應該使用的ServiceMix提供POI的OSGi包(ORG。 apache.servicemix.bundles/org.apache.servicemix.bundles.poi/3.14_1) –

+2

你爲什麼依賴於舊版本的Apache POI?當你升級到最新的會發生什麼? – Gagravarr

回答

1

亞歷山大Cartapanis你是對的

也許你應該使用的ServiceMix提供POI的OSGi包(org.apache.servicemix.bundles /組織.apache.servicemix.bundles .poi/3.14_1)

感謝所有。