Maven 处理第三方JAR';Jboss保险丝中的s

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

我在ApacheServiceMix 4上运行了一个CXF服务,我正在尝试将它安装在Fuse 6.2上,因为我们计划从ApacheServiceMix迁移到Fuse。问题在于依赖性。在这个特定实例上,我的服务依赖于javax.jws:

<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