Ошибка при развертывании веб-службы: отсутствует ограничение: пакет импорта: org.apache.axis2.databinding; версия = "0.0.0". Как я могу решить это? - PullRequest
0 голосов
/ 09 марта 2011

Я борюсь с файлами CXF и POM. Я хочу добавить зависимость к axis2 к нему, поэтому я добавил это к своему pom.

    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2</artifactId>
        <version>1.5.2</version>
    </dependency>

Это загружает зависимость правильно, и все, кажется, работает. При развертывании я получаю это сообщение:

Пакет не может быть разрешен. Причина: отсутствует ограничение: пакет импорта: org.apache.axis2.databinding; версия = "0.0.0"

Поэтому я изменил свой тег плагина, добавив ссылку на org.apache.axis2.datab:

<plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
                <instructions>
                    <Bundle-Activator>de.innoshgs.iai.services.pruefentxschema_uas_01.Activator</Bundle-Activator>
                    <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                    <Import-Package>
                        javax.jws,
                        javax.wsdl,
                        javax.xml.bind,
                        javax.xml.bind.annotation,
                        javax.xml.namespace,
                        javax.xml.soap,
                        javax.xml.transform,
                        javax.xml.ws,
                        javax.xml.ws.handler,
                        javax.xml.ws.handler.soap,
                        META-INF.cxf,
                        META-INF.cxf.osgi,
                        org.apache.cxf.bus,
                        org.apache.cxf.bus.spring,
                        org.apache.cxf.bus.resource,
                        org.apache.cxf.configuration.spring,
                        org.apache.cxf.feature,
                        org.apache.cxf.resource,
                        org.apache.cxf.transport.http_osgi,
                        org.apache.cxf.interceptor,
                        org.apache.servicemix.util,
                        org.springframework.beans.factory.config,
                        org.apache.camel.osgi,
                        org.apache.axis2.databinding,
                        sun.misc;resolution:=optional,
                        !de.innoshgs.iai.services.pruefentxschema_uas_01,
                        !de.innoshgs.iai.namespace,
                        *
        </Import-Package>
                    <Require-Bundle>org.apache.cxf.bundle</Require-Bundle>
                    <Private-Package>
                        de.innoshgs.iai.services.pruefentxschema_uas_01,
                        de.innoshgs.iai.namespace,
        </Private-Package>
                </instructions>
            </configuration>
        </plugin>

Но я продолжаю получать ту же ошибку. Я не Java-разработчик, я начинаю с этого, поэтому я потерян с этим. Я искал и мог получать некоторые подсказки, пока не дошел до этого момента, но теперь, похоже, застрял. Что мне нужно сделать, чтобы maven смог найти эту ссылку для привязки данных?

Весь файл pom находится здесь:

<?xml version="1.0" encoding="UTF-8"?>

http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.apache.servicemix.examples</groupId>
    <artifactId>examples</artifactId>
    <version>4.2.0-fuse-01-00</version>
</parent>

<groupId>de.innoshgs.iai.Services</groupId>
<artifactId>PruefenTXSchema_UAS_01</artifactId>
<packaging>bundle</packaging>
<version>4.2.0-fuse-01-00</version>
<name>PruefenTXSchema_UAS_01</name>

<!-- Add fusesource repositories for snaphots and releases -->
<pluginRepositories>
    <pluginRepository>
        <id>fusesource.m2-snapshot</id>
        <name>FuseSource Snapshots Repository</name>
        <url>http://repo.fusesource.com/maven2-snapshot/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </pluginRepository>
    <pluginRepository>
        <id>fusesource.m2</id>
        <name>FuseSource Repository</name>
        <url>http://repo.fusesource.com/maven2/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>
<repositories>
    <repository>
        <id>fusesource.m2-snapshot</id>
        <name>FuseSource Snapshots Repository</name>
        <url>http://repo.fusesource.com/maven2-snapshot/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
    <repository>
        <id>fusesource.m2</id>
        <name>FuseSource Repository</name>
        <url>http://repo.fusesource.com/maven2/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons.logging.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-ftp</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-ws-metadata_2.0_spec</artifactId>
        <version>${geronimo.wsmetadata.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.servicemix</groupId>
        <artifactId>servicemix-utils</artifactId>
        <version>${servicemix-utils.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>${cxf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-all</artifactId>
        <version>5.3.1-fuse-02-00</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf</artifactId>
        <version>${camel.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.servicemix.kernel</groupId>
        <artifactId>org.apache.servicemix.kernel.main</artifactId>
        <version>1.1.0.1-fuse</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2</artifactId>
        <version>1.5.2</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>${cxf.version}</version>
            <executions>
                <execution>
                    <id>generate-sources</id>
                    <phase>generate-sources</phase>
                    <configuration>
                        <sourceRoot>${basedir}/src/main/java</sourceRoot>
                        <wsdlOptions>
                            <wsdlOption>
                                <wsdl>${basedir}/src/main/resources/wsdl/PruefenTXSchema_UAS_01Service.wsdl</wsdl>
                            </wsdlOption>
                        </wsdlOptions>
                    </configuration>
                    <goals>
                        <goal>wsdl2java</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
                <instructions>
                    <Bundle-Activator>de.innoshgs.iai.services.pruefentxschema_uas_01.Activator</Bundle-Activator>
                    <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                    <Import-Package>
                        javax.jws,
                        javax.wsdl,
                        javax.xml.bind,
                        javax.xml.bind.annotation,
                        javax.xml.namespace,
                        javax.xml.soap,
                        javax.xml.transform,
                        javax.xml.ws,
                        javax.xml.ws.handler,
                        javax.xml.ws.handler.soap,
                        META-INF.cxf,
                        META-INF.cxf.osgi,
                        org.apache.axis2.databinding,
                        org.apache.cxf.bus,
                        org.apache.cxf.bus.spring,
                        org.apache.cxf.bus.resource,
                        org.apache.cxf.configuration.spring,
                        org.apache.cxf.feature,
                        org.apache.cxf.resource,
                        org.apache.cxf.transport.http_osgi,
                        org.apache.cxf.interceptor,
                        org.apache.servicemix.util,
                        org.springframework.beans.factory.config,
                        org.apache.camel.osgi,
                        sun.misc;resolution:=optional,
                        !de.innoshgs.iai.services.pruefentxschema_uas_01,
                        !de.innoshgs.iai.namespace,
                        *
        </Import-Package>
                    <Require-Bundle>org.apache.cxf.bundle</Require-Bundle>
                    <Private-Package>
                        de.innoshgs.iai.services.pruefentxschema_uas_01,
                        de.innoshgs.iai.namespace,
        </Private-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

Большое спасибо, Оскар

Редактировать: просто чтобы прояснить: сервер и компьютер, который я использую для разработки, - это разные машины.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2015

Кажется, проблема в том, что зависимость, которую вы хотите добавить в свой проект, не существует на сервере.Вам нужен JAR для обеспечения зависимости от сервера.Попробуйте добавить:

<Embed-Dependency>axis2</Embed-Dependency>

после элемента Import-Package вашей конфигурации подключаемого модуля maven.Это вставит jar axis2 в ваш скомпилированный jar, выставит его и позволит вызывать его на сервере.Дополнительную информацию о зависимости встраивания можно найти по адресу Apache Felix - Зависимости встраивания , хотя я признаю, что не всегда полезно знать, когда и зачем его использовать.

0 голосов
/ 10 марта 2011

Можете ли вы попробовать добавить зависимость axis2-adb и посмотреть, не исчезла ли ошибка?

<dependency>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2-adb</artifactId>
    <version>1.5.2</version>
</dependency>
...