提前感谢。我有问题启动一个osgi捆绑包,它给出了这个错误消息:包/捆绑包将不安装。它编译,并构建好,当部署到Karaf时,它不会加载和抱怨丢失的布线包,看起来像是正在导出和导入。但是缺少一个版本id。
执行命令时出错:无法启动bundle mvn:com。通用电气。数字的passthru/passthrumt1。dataserviceimpl/1.0.1-SNAPSHOT在功能部件passthru-mt1-application-1.0.1-SNAPSHOT中:bundle passthrumt1中存在未解决的约束。dataserviceimpl[298]:无法解析298.0:缺少要求[298.0]osgi。装电线。包裹(osgi.willing.package=com.ge.digital.passthru.dataservice)
清单显示它正在导入包,并且正在导出,我唯一能找到的是导入包没有版本号。这可能是我的问题吗?有什么想法如何解决?
Manifest-Version: 1.0
Bnd-LastModified: 1524070286656
Build-Jdk: 1.8.0_91
Built-By: 212555427
Bundle-ManifestVersion: 2
Bundle-Name: PassThru MT1 :: Data Service Impl
Bundle-SymbolicName: passthrumt1.dataserviceimpl
Bundle-Version: 1.0.1.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Service: com.ge.digital.passthru.dataservice.PDXDataService
Import-Package: com.ge.digital.passthru.dataservice,com.ge.digital.passt
hru.entities;version="[1.0,2)",com.ge.digital.passtrhu.dataservice;vers
ion="[1.0,2)",org.apache.camel;version="[2.17,3)",org.apache.camel.buil
der;version="[2.17,3)",org.apache.camel.component.file;version="[2.17,3
)",org.apache.camel.model;version="[2.17,3)",org.osgi.service.blueprint
;version="[1.0.0,2.0.0)",org.slf4j;version="[1.7,2)"
Tool: Bnd-1.50.0
这是我的POM
<!-- GE Internal Dependencies -->
<dependency>
<groupId>com.ge.digital.passthru</groupId>
<artifactId>passthrumt1.dataservice</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.ge.digital.passthru</groupId>
<artifactId>passthrumt1.entities</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Fuse Dependencies -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-blueprint</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ftp</artifactId>
</dependency>
<!-- logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<plugins>
<!-- to generate the MANIFEST-FILE of the bundle -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${bundle-plugin-version}</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Private-Package>com.ge.digital.passthru.dataservice.impl.*</Private-Package>
<Import-Package>
com.ge.digital.passtrhu.dataservice,
com.ge.digital.passthru.entities,
*
</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
我想这可以追溯到旧的maven回购刷新与fuse的事情,你需要删除. m2/repository/xxx目录和fusehome/data目录的内容,并重新开始。
现在一切看起来都很好。
PassThru MT1 :: Data Service (297)
----------------------------------
Created-By = Apache Maven Bundle Plugin
Manifest-Version = 1.0
Bnd-LastModified = 1524090455529
Build-Jdk = 1.8.0_91
Built-By = NSK1212555427A$
Tool = Bnd-1.50.0
Bundle-ManifestVersion = 2
Bundle-SymbolicName = passthrumt1.dataservice
Bundle-Version = 1.0.1.SNAPSHOT
Bundle-Name = PassThru MT1 :: Data Service
Export-Package =
com.ge.digital.passthru.dataservice;uses:=com.ge.digital.passthru.entities;version=1.0.1.SNAPSHOT
Import-Package =
com.ge.digital.passthru.entities;version="[1.0,2)"
JBossFuse:admin@FLEET TEST ENV> headers 298
PassThru MT1 :: Data Service Impl (298)
---------------------------------------
Created-By = Apache Maven Bundle Plugin
Manifest-Version = 1.0
Bnd-LastModified = 1524090458281
Build-Jdk = 1.8.0_91
Built-By = NSK1212555427A$
Tool = Bnd-1.50.0
Bundle-ManifestVersion = 2
Bundle-SymbolicName = passthrumt1.dataserviceimpl
Bundle-Version = 1.0.1.SNAPSHOT
Bundle-Name = PassThru MT1 :: Data Service Impl
Export-Service =
com.ge.digital.passthru.dataservice.PDXDataService
Import-Package =
com.ge.digital.passthru.dataservice;version="[1.0,2)",
com.ge.digital.passthru.entities;version="[1.0,2)",
org.apache.camel;version="[2.17,3)",
org.apache.camel.builder;version="[2.17,3)",
org.apache.camel.component.file;version="[2.17,3)",
org.apache.camel.model;version="[2.17,3)",
org.osgi.service.blueprint;version="[1.0.0,2.0.0)",
org.slf4j;version="[1.7,2)"
我还不是一个有经验的OSGi用户,因此我会遇到一些问题。 我正在尝试使用作为外部提供程序,因为我不希望我的包包含所有这些类。 但是,当我运行这组包(my和)时,我得到以下错误: 错误:Bundle org.apache.serviceMix.bundles.hadoop-client[56]错误启动文件:bundles/org.apache.serviceMix.bundles.hadoop-cl
我有一个使用OSGi-(felix)、SpringDM、hibernate和maven的项目。当我安装捆绑包时,它是正常的,当我运行捆绑包id时的输出是: 这是我在启动此捆绑包时看到的: 这是我的beans.xml: 这是我的pom文件: 此外,在felix中存在一个完整的捆绑错误。
以前部署的JDOM的OSGi包究竟是如何解决这些相同的依赖关系的?它们从来没有在捆绑进口包中列出?此外,如果我试图将这些作为项目的依赖项包含并嵌入它们,只会加剧问题。救命啊!
在完成教程后,我有一个带有OSGi的Web应用程序客户端捆绑包(WAB),我想使用quartz调度程序中的软件包来完成特定任务。我也使用Maven,我把以下依赖项: org.quartz-scheduler quartz 2.2.1 编译 org.quartz-scheduler quartz-jobs 2.2.1 编译 我已经在Maven存储库中进行了检查,似乎一切都很好,石英罐中的包/罐子在M
我正在尝试在fuse服务器上部署一个捆绑包,但对其进行了一些更改。我添加了unirest依赖项来执行REST调用。 该版本在本地计算机和 Jenkins 上工作正常,但捆绑包会引发错误,并且无法在 fuse 服务器上部署。 它抛出以下错误: 以下是我的pom.xml:
我是Apache karaf和OSGI的新手。我正在尝试编写和运行一个非常简单的捆绑包。但是我在启动该捆绑包时遇到了这个错误: 执行命令时出错:在捆绑包上执行命令时出错:无法解析karaf[86](R 86.0):缺少需求[karaf[86](R 86.0)]osgi。装电线。包裹(osgi.wiring.package=bundle)未解决的需求:[[karaf[86](R 86.0)]osgi