1

ServiceMix 4.5.2 にデプロイしようとしている JAX RS サービスがあり、2 つのエラーで失敗します。私はさまざまな例を追跡して比較してきましたが、maven アーキタイプから始めましたが、エラーや答えが見つかりません。

最初のエラー。

2013-09-20 22:45:09,357 | ERROR | lixDispatchQueue | FeatureDeploymentListener        | 35 - org.apache.karaf.deployer.features - 2.2.11 | Unable to install deployed features for bundle: FleetInfoService - 1.0.0.SNAPSHOT
java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
    at java.util.Properties.loadConvert(Properties.java:569)[:1.6.0_27]
    at java.util.Properties.load0(Properties.java:391)[:1.6.0_27]
    at java.util.Properties.load(Properties.java:342)[:1.6.0_27]
    at org.apache.karaf.deployer.features.FeatureDeploymentListener.bundleChanged(FeatureDeploymentListener.java:171)[35:org.apache.karaf.deployer.features:2.2.11]

私のPOMには、アーキタイプによって提供される、エンコーディングに関する次の行があります。

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

このエラーにもかかわらず、Bean 定義をロードしようとすると、このエラーが発生します。

2013-09-20 22:45:10,551 | ERROR | ExtenderThread-3 | ContextLoaderListener            | 82 - org.springframework.osgi.extender - 1.2.1 | Application context refresh failed (OsgiBundleXmlApplicationContext(bundle=FleetInfoService, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.osgi.org/xmlns/blueprint/v1.0.0]
Offending resource: URL [bundle://200.0:0/META-INF/spring/camel-context.xml]

camel-context.xml は次のように始まります。タイプミスがないか再確認しました。

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
xmlns:cxf="http://cxf.apache.org/blueprint/core"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd">

Maven POM には、次の依存関係が含まれています。camel/blueprint のバージョンは、ServiceMix の osgi:list; にあるバージョンと一致しています。

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>2.10.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-blueprint</artifactId>
        <version>2.10.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>2.7.6</version>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>1.1.1</version>
    </dependency>

POM プラグインは次のとおりです。

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>features-maven-plugin</artifactId>
            <version>2.3.2</version>
            <executions>
                <execution>
                    <id>generate</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>generate-features-xml</goal>
                    </goals>
                    <configuration>
                        <!-- bundles>src/main/resources/bundles.properties</bundles -->
                        <outputFile>target/${project.artifactId}Features-${project.version}.xml</outputFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.4.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                    <Private-Package>${project.groupId}.*</Private-Package>
                    <Import-Package>*</Import-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
4

1 に答える 1

1

$SMX/data/cache/bundle/data の FeatureDeploymentListener.cfg ファイルを確認する必要があります。エントリの 1 つに間違ったコンテンツが含まれているようです。\u文字のシーケンスまたはその他の奇妙なシーケンスを探します。

不正なファイルは pom.xml の結果である可能性があります (たとえば、artifactId が含まれている\u)、または単に破損している可能性があります。後者の場合、$SMX/data/cache/bundle ディレクトリを簡単に削除して ServiceMix を再起動できます。

2 番目の問題は、OSGI 設計図の構成を spring ファイル ( META-INF/spring/camel-context.xml) に配置したことが原因のようです。ブループリントを使用する場合は、OSGI-INF/blueprint代わりにファイルをディレクトリに配置します。または、 camel の例のような Spring DM 構成を使用できます。

于 2013-10-10T17:39:11.377 に答える