【问题标题】:Change the order in which bundles are deployed in JBOSS Fuse更改在 JBOSS Fuse 中部署包的顺序
【发布时间】:2017-03-01 14:16:46
【问题描述】:

我在JBOSS Fuse 中部署我的apache-camel 项目作为一项功能。以下 karaf 功能文件用于该项目。

<?xml version="1.0" encoding="UTF-8"?>
<features name="${project.artifactId}-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
    <feature name="${project.artifactId}" description="${project.description}" version="${project.version}">
        ...
        <feature>camel-beanio</feature>
        ...

        <bundle>mvn:${project.groupId}/abc-common/${common-version}</bundle>
        <bundle>mvn:${project.groupId}/abc-service/${project.version}</bundle>

    </feature>
</features>

当我安装主要功能时,它会在camel-beanio 功能之前加载abc-service 捆绑包,并且使用beanio 数据格式的abc-service 中的路由失败。

我在谷歌上进行了一些搜索,发现了start-leveldependencyprerequesite 等选项。但是,当前配置的名称空间不允许这些属性中的任何一个。

我还尝试更改 this example hosted on Github 中提供的 xml 名称空间。但它导致了另一个错误,例如

原因:java.lang.IllegalStateException:找不到资源: /org/apache/karaf/features/karaf-features-1.3.0.xsd

那么,在实际服务之前确保安装camel-beanio 功能的正确方法是什么?

【问题讨论】:

    标签: apache-camel apache-karaf jbossfuse


    【解决方案1】:

    你应该可以像这样写一个特征文件:

    <features>
    <feature name "nameOfYourProject">
    <bundle dependency="true">mvn:org.apache.camel/camel-beanio/2.17.0</bundle>
    ..your abc bundle
    ..
    </feature>
    </features>
    

    但我可能会建议您在 /main 下创建一个名为 feature 的文件夹并创建一个 feature.xml。使用您的捆绑包依赖项手动编辑它,例如:

    <features>
      <feature name="${project.artifactId}">
        <bundle dependency="true">mvn:org.apache.camel/camel-core/2.17.0</bundle>
        <bundle dependency="true">mvn:org.apache.camel/camel-blueprint/2.17.0</bundle>
        <bundle dependency="true">mvn:org.apache.camel/camel-rabbitmq/2.17.0</bundle>
        <bundle dependency="true">mvn:org.apache.camel/camel-jackson/2.17.0</bundle>
        <bundle dependency="true">mvn:org.apache.commons/commons-lang3/3.4</bundle>
        <bundle dependency="true">mvn:commons-codec/commons-codec/1.10</bundle>
        <bundle dependency="true">wrap:mvn:org.apache.axis/axis/1.4</bundle>
        <bundle dependency="true">wrap:mvn:org.apache.axis/axis-jaxrpc/1.4</bundle>
        <bundle dependency="true">wrap:mvn:org.apache.axis/axis-saaj/1.4</bundle>
        <bundle dependency="true">wrap:mvn:axis/axis-wsdl4j/1.5.1</bundle>
        <bundle dependency="true">wrap:mvn:commons-discovery/commons-discovery/0.4</bundle>
        <bundle dependency="true">wrap:mvn:javax.xml/jaxrpc-api/1.1</bundle>
        <bundle dependency="true">mvn:org.slf4j/slf4j-api/1.7.13</bundle>
        <bundle dependency="true">mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
      </feature>
    </features>
    

    将此添加到您的 pom 中的插件部分:

    <!-- to generate the karaf feature file from feature template file -->
          <plugin>
            <groupId>org.apache.karaf.tooling</groupId>
            <artifactId>karaf-maven-plugin</artifactId>
            <version>4.0.2</version>
            <configuration>
              <aggregateFeatures>false</aggregateFeatures>
              <includeTransitiveDependency>false</includeTransitiveDependency>
              <addBundlesToPrimaryFeature>true</addBundlesToPrimaryFeature>
              <addTransitiveFeatures>false</addTransitiveFeatures>
            </configuration>
            <executions>
              <execution>
                <id>plugin-feature</id>
                <goals>
                  <goal>features-generate-descriptor</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
    

    然后,当您运行全新安装时,功能文件将在您的目标文件夹中生成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多