I have a CXF service running on Apache ServiceMix 4. In the interests of science I'm trying to install it on Fuse since we're planning a migration from apache servicemix to fuse.
The problem is the dependencies. On this particular instance my service depends on javax.jws:
<dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2.1</version> <type>jar</type> <scope>compile</scope> </dependency>
If I add my webservice to a profile I get this error:
Caused by: java.lang.Exception: Unable to start bundle 285: Unresolved constraint in bundle XPTO : Unable to resolve 285.1: missing requirement [285.1] osgi.wiring.package; (&(osgi.wiring.package=javax.jws)(version>=2.0.0)(!(version>=3.0.0)))
So I tried to manually add jaxws-api v2.1 to the profile:
JBossFuse:admin@root> profile-edit -b mvn:javax.xml.ws/jaxws-api/2.1 test-xpto Adding bundle:mvn:javax.xml.ws/jaxws-api/2.1 to profile:test-xpto version:1.0
But that throws me an exception saying that
org.osgi.framework.BundleException: Unsupported 'Bundle-ManifestVersion' value: 1
So with this I have a couple of questions:
1) Is there a way to check which bundle is providing a particular JAR? It appears that version 3.0.0 of javax.jws is installed but I'm usure of that bundle is exporting it.
2) Is there a way to overcome that Bundle-ManifestVersion: 1 for a third party JAR? Without downloading the sources and making a new POM, that is...
3) Must the dependencies always be managed "by hand"? Is there a mechanism for fuse to download, through public maven repositories, all the required jars? After all they are identified on the POM of my project.
Thank you very much
profile-edit -b wrap:mvn:javax.xml.ws/jaxws-api/2.1 test-xpto
that should resolve your
org.osgi.framework.BundleException: Unsupported 'Bundle-ManifestVersion' value: 1 which essentially is saying the jar you specified is not a bundle