У меня есть приложение веб-службы CXF в Fuse, и у него есть ссылка в XML-файле контекста верблюда на банку, содержащую мои файлы, сгенерированные из WSDL.
<cxf:cxfEndpoint id="LookupEndpoint"
address="${my.LookupUri}"
serviceClass="com.whatever.IWebService"
wsdlURL="wsdl/MyWsdl.wsdl"/>
com.whatever.*
есть в моем списке <Import-Package>
. Банка находится в моих зависимостях maven. Я могу сказать import com.whatever.IWebService;
и он не жалуется.
Но maven-bundle-plugin не включает этот пакет в MANIFEST.MF.
Он включает в себя все другие мои пакеты, которые я просил. Но не этот. Итак, в Fuse, когда я его развертываю, я получаю ClassNotFoundException, ссылаясь на загрузку класса context.xml.
Это очень расстраивает. Есть ли способ заставить плагин импортировать определенный пакет? Потому что их автоматический решатель зависимостей игнорирует мой <Import-Package>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${version.maven-bundle-plugin}</version>
<extensions>true</extensions>
<configuration>
<manifestLocation>src/main/resources/META-INF</manifestLocation>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>
*,
com.imports.this.one.fine*,
com.imports.this.one.just.fine*,
com.imports.does.not.import.this.one.*,
</Import-Package>
<Export-Package>
com.something.export.*
</Export-Package>
</instructions>
</configuration>
</plugin>