Maven 处理第三方JAR';Jboss保险丝中的s
我在ApacheServiceMix 4上运行了一个CXF服务,我正在尝试将它安装在Fuse 6.2上,因为我们计划从ApacheServiceMix迁移到Fuse。问题在于依赖性。在这个特定实例上,我的服务依赖于javax.jws:Maven 处理第三方JAR';Jboss保险丝中的s,maven,osgi,jbossfuse,Maven,Osgi,Jbossfuse,我在ApacheServiceMix 4上运行了一个CXF服务,我正在尝试将它安装在Fuse 6.2上,因为我们计划从ApacheServiceMix迁移到Fuse。问题在于依赖性。在这个特定实例上,我的服务依赖于javax.jws: <dependency> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>2
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
因此,我尝试手动将jaxws api v2.1添加到配置文件中:
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
但这给我带来了一个例外
org.osgi.framework.BundleException: Unsupported 'Bundle-ManifestVersion' value: 1
因此,我有几个问题:
1) 有没有办法检查哪个包提供了特定的JAR?似乎安装了javax.jws的3.0.0版,但我通常知道导出它的包是什么
2) 有没有一种方法可以克服第三方JAR版本1的问题?没有下载源代码和制作新POM,即
3) 依赖关系必须始终“手动”管理吗?fuse是否有机制通过公共maven存储库下载所有必需的JAR?在我的项目的POM上标识了所有JAR之后。对于捆绑形式的JAR,您可以将其作为捆绑安装 对于不是捆绑形式的jar,您需要使用“wrap”命令安装它们。这可能就是为什么会出现Bundle ManifestVersion错误,因为jar的清单文件中没有该属性。请看这里:
如果您正在部署单个捆绑包,那么是的,依赖关系需要手动处理。为了简化工作,您可以将它们全部放在功能文件中,只需部署引用所有依赖项的功能文件。请参见此处:我在尝试部署JBoss快速启动应用程序“soap”时遇到了相同的异常。 “(&(osgi.willing.package=javax.jws)(版本>=2.0.0)(!(版本>=3.0.0))”对我来说是异常的重要部分 我必须转到JBOSS_HOME/etc中的jre.properties,在正确的jre下使用change: javax.jws\ 到 javax.jws;version=“2.0”\ 及 javax.jws.soap\ 到 javax.jws.soap;version=“2.0”\ 这解决了我的问题
org.osgi.framework.BundleException: Unsupported 'Bundle-ManifestVersion' value: 1