0

プロジェクト「samba.interfaces」と「samba.message」を問題なくビルドできます。しかし、ServiceMixで「samba.message」バンドルを開始しようとすると(パッケージde.samba.commonを含む「samba.interfaces」バンドルが必要です)、次のエラーが発生します。

Error executing command: Unresolved constraint in bundle message [195]: module; 
(&(bundle-symbolic-name=de.samba.common)(bundle-version>=0.0.1))

それで、象徴的な名前は何に使われますか?メインパッケージと同じである必要がありますか?これは、メッセージバンドルを指定するPOMの一部です。

<plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
             <version>2.2.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-Activator>de.samba.message.Activator</Bundle-Activator>
                    <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                    <Bundle-Name>SAMBA Message</Bundle-Name>
                    <Bundle-Version>1.0.0</Bundle-Version>
                    <Import-Package>
                        javax.jws,
                        javax.wsdl,
                        javax.xml.bind,
                        javax.xml.bind.annotation,
                        javax.xml.namespace,
                        javax.xml.ws,
                        META-INF.cxf,
                        META-INF.cxf.osgi,
                        org.apache.cxf.endpoint,
                        org.apache.cxf.bus,
                        org.apache.cxf.bus.spring,
                        org.apache.cxf.bus.resource,
                        org.apache.cxf.configuration.spring,
                        org.apache.cxf.resource,
                        org.apache.cxf.service.model,
                        org.apache.cxf.jaxws,
                        org.apache.cxf.transport.http_osgi,
                        org.springframework.beans.factory.config,
                        org.springframework.beans.factory.xml,
                        org.springframework.core.io,
                        org.springframework.beans.factory, 
                        org.springframework.context.support,
                        org.springframework.beans, 
                        org.springframework.context, 
                        org.osgi.framework,
                        org.apache.log4j,
                        de.samba.common.auditingcontrol.*,
                        de.samba.common.collect.*,
                        de.samba.common.message.*,
                        de.samba.common.repository.*,
                        de.samba.common.security.*,
                        de.samba.common,
                        *
                    </Import-Package>
                    <Export-Package>de.samba.message.*</Export-Package>
                    <Private-Package>

                    </Private-Package>
                    <!--
                    <DynamicImport-Package>*</DynamicImport-Package>
                    -->
                </instructions>

このエラーの原因となる可能性のあるアイデアはありますか?

4

2 に答える 2

0

さて、私は自分で問題を見つけました。コマンド実行エラー: バンドル メッセージ [195] の未解決の制約: モジュール; (&(bundle-symbolic-name=de.samba.common)(bundle-version>=0.0.1)) は完全に予期せぬもので、src/main/resources/META-INF 内に MANIFEST.MF ファイルがあることから来ました。プラグイン/OSGi 開発を行っている場合、通常はバンドル情報が記述されています。Maven BND プラグインにはそのファイルが含まれており、そこにない場合にのみ新しい情報を生成するようです。

したがって、src/main/resources/META-INF/MANIFEST.MF を削除して問題を解決し、プラグインが適切なリソースを生成できるようにしました。

于 2011-02-02T12:42:44.133 に答える
0

OSGI についてはよくわかりませんが、次のような観察結果があります。

ドキュメントには、の<Bundle-SymbolicName>計算方法が指定されています。彼らの実世界の例では、彼らは持っていないようですprojectId.

<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
于 2011-02-02T11:09:02.327 に答える