当前位置: 首页 > 知识库问答 >
问题:

部署时未从.kar加载Karaf包

诸葛立果
2023-03-14

我有一个Karaf应用程序,在一个.kar文件中有三个bundle,由features.xml指定。

部署工作在我的Dev机器上,我怀疑依赖包是从本地Maven repo中提取的,因为构建过程是最新的。

当前,要在目标计算机上解决这一问题,我必须将本地repo复制到[karaf.root]/system/文件夹中,以便在热部署.kar时更新所有包。

有没有人知道如何配置features.xml,使bundles从.kar中取出,而不是[最初]从/system文件夹中取出?xml文件是;

<features name="${project.artifactId}-${project.version}"
xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">

<feature name="${project.artifactId}" install="auto" version="${project.version}"
    description="${project.description}">
    <bundle dependency="true">mvn:com.google.code.gson/gson/${gson.version}</bundle>
    <bundle>mvn:uk.co.company.product/product-common-api/${project.version}</bundle>
    <bundle>mvn:uk.co.company.product/product-core-services/${project.version}</bundle>
    <bundle>mvn:uk.co.company.product/product-scenario-exporter/${project.version}</bundle>

<feature prerequisite="true">camel-jetty</feature>
<feature prerequisite="true">webconsole</feature>
</feature>

我已经检查过,所需的bundles(即common-api)包含在编译好的kar文件的repository文件夹中。

共有1个答案

程振濂
2023-03-14

您只需为所需的包使用mvn url即可。kar的内容将是这种依赖关系的一个来源。我想你KAR中有一个错误。你能在这里发布你的kar文件吗(也许可以瘦身为中性内容)?

您的KAR中的文件结构是什么?它应该包含一个目录存储库,里面应该是子目录和JAR,就像maven存储库一样。只有这样,才会解析mvn url。

 类似资料:
  • 在karaf中,如果kar文件A的某个特性依赖于kar文件B中的某个特性,并且kar文件A在B之前加载,那么kar文件A中的特性的安装将会失败,表示存在未解决的依赖性。 捆绑启动级别似乎没有区别。 有没有办法控制哪个kar文件首先加载?还是一种解决跨卡依赖关系的方法?或者甚至是一种使karaf在加载所有kar文件之前不尝试安装任何捆绑包/功能的方法?

  • 我有一个我为Apache Karaf制作的KAR文件。 现在,要让我的KAR在Karaf 2.4.1中运行,我必须在Karaf控制台中手动键入以下内容,以允许声明性服务工作。 我的KAR文件有没有办法指示Karaf自动安装这个scr? 关键是我希望能够通过将KAR放入Karaf deploy文件夹中来部署KAR,而无需执行任何手动命令。

  • 我已经为karaf(4.0.1)创建了first project。到目前为止,我得到了以下信息: 使用构建的应用程序包。还会有更多... 使用创建的karaf特性。 使用相同插件创建的karaf-assembly 所以我已经做好了交付给客户的准备--但是我在开发过程中陷入了困境。这个问题几乎回答了我剩下的所有问题,除了一个: 在通过运行构建了我的项目之后,我想我应该能够使用类似命令这样的东西在本地

  • 当我在服务器上部署war文件时,它并没有加载css和js文件,但是当我使用spring boot运行相同的代码时,它工作得很好。下面是加载js和css文件的目录结构和配置。有谁能告诉我问题是什么吗?仅使用基于java的项目配置。在部署项目之前,我已经参考了文档中的8.1.1,并使用了与下面相同的pom文件配置。 配置文件- pom.xml文件

  • 我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部