Я только что обновил свои библиотеки Apache POI с 3.9 до 4.0.1, также используя пакет Apache org.apache.servicemix.bundles.poi, который имеет много изменений и зависимостей. Я на пути к выполнению зависимостей, продолжаю сталкиваться с отсутствующими проблемами ограничений. У кого-нибудь есть рабочая реализация Apache POI, использующая org.apache.servicemix.bundles.poi/4.0.0_1 ??? Я застрял на osgi.wiring.package; (Osgi.wiring.package = org.apache.xml.security.signature)

Я получаю эту ошибку:

Error executing command: Could not start bundle mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi/4.0.0_1 in feature(s) fadec-application-1.0.0: Unresolved constraint in bundle org.apache.servicemix.bundles.poi [303]: Unable to resolve 303.0: missing requirement [303.0] osgi.wiring.package; (osgi.wiring.package=org.apache.xml.security.signature)

Как использовать и получить работу в контейнере karaf osgi. слишком много ненужных и отсутствующих зависимостей.

Спасибо!

1 ответ1

0

в настоящее время нет, за исключением 3.9_2, которые работают или успешно развертываются в контейнере OSGI karaf. Вы должны построить свой собственный. вот начало.

<?xml version="1.0" encoding="UTF-8"?>
<project
  xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.ge.ip.poi</groupId>
<artifactId>poi-bundle</artifactId>
<version>3.1.7</version>

<packaging>bundle</packaging>

<name>POI OSGi-Bundle</name>

<description>This OSGi bundle wraps poi, poi-ooxml, poi-ooxml-schemas and poi-scratchpad jar files.</description>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>
<!--     <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-schemas</artifactId>
        <version>3.17</version>
    </dependency> -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>ooxml-schemas</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>3.17</version>
    </dependency>
    <dependency>
        <groupId>com.github.virtuald</groupId>
        <artifactId>curvesapi</artifactId>
        <version>1.06</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.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.18</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>
</dependencies>

<build>
 <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.7</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                <Export-Package>
                    org.apache.poi.*;-split-package:=merge-first
                </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.
                    ;-split-package:=merge-first,com.graphbuilder.curve  || com.graphbuilder.geom, schemasMicrosoftComOfficeExcel.*
                    -->
                    <Private-Package>
                        org.apache.commons.*,
                        org.apache.xmlbeans.*,
                        com.graphbuilder.curve.*,
                        com.graphbuilder.geom.*,
                        com.graphbuilder.math.*,
                        com.graphbuilder.org.apache.harmony.awt.gl.*
                    </Private-Package>
                    <DynamicImport-Package>*</DynamicImport-Package>
                    <!-- <Import-Package>*</Import-Package> -->
                </instructions>
            </configuration>
        </plugin>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-dependency-plugin</artifactId>
           <executions>
             <execution>
               <id>copy-dependencies</id>
               <phase>package</phase>
               <goals>
                    <goal>copy-dependencies</goal>
               </goals>
            </execution>
         </executions>
     </plugin>
 </plugins>

</build>

</project>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .