2017-03-01 61 views
0

作爲功能,我在JBOSS Fuse中部署我的apache-camel項目。以下karaf特徵文件用於該項目。更改在JBOSS中部署軟件包的順序保險絲

<?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束和abc-service它利用beanio DATAFORMAT的失敗路線。

我在google上做過一些搜索,發現像start-level,dependency,prerequesite ..等等選項。但是,當前配置的名稱空間不允許任何這些屬性。

我也嘗試更改this example hosted on Github中提供的xml名稱空間。但它不會像

所致另一個錯誤:java.lang.IllegalStateException:找不到資源: /org/apache/karaf/features/karaf-features-1.3.0.xsd

那麼,確保在實際服務之前安裝camel-beanio功能有什麼正確的?

回答

0

你應該能夠編寫一個特徵文件,像這樣:

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

但我可能會建議你創建一個在/主要功能叫做文件夾,並創建一個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> 

然後,當您運行全新安裝的功能,文件將在目標文件夾中生成。