2017-03-01 4 views
0

apache-camel 프로젝트를 JBOSS Fuse에 배포하고 있습니다. 다음 karaf 기능 파일은 프로젝트에 사용됩니다. 내가 주요 기능을 설치하면번들이 JBOSS에서 배포되는 순서 변경 Fuse

<?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> 

, 그것은 abc-servicecamel-beanio 기능 이전 번들 beanio DATAFORMAT의 사용은 실패하게 abc-service의 경로를로드합니다.

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> 

당신의 치어에 플러그인 섹션이 추가 :

<!-- 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> 

을 그럼 당신은 청소 기능 파일을 설치 실행할 때 대상 폴더에 생성됩니다 수동으로 같은 번들 종속성이 편집 .