

### 質問

ApacheCamelのJavaDSLでAPIを作成しています。  
下記の手順でインポートしたプロジェクトのルートを使用しようとするとエラーになりました。  
他プロジェクトのルートを使用する方法等、何か解決方法のヒントをご教授いただけませんでしょうか。

### 手順

  1. Aプロジェクト内にAルートを作成し、Mavenプライベートリポジトリにあげる
  2. BプロジェクトのpomファイルにAプロジェクトの情報を記載し、インポートする  
※Aプロジェクト内のBeanをBプロジェクトで使用できることは確認済

  3. Bプロジェクトのルート上で`.to("direct:Aルート")`というように呼び出す

### その他設定等

・Aプロジェクトのルート部分

[code]

    package jp.co.aaa.route;
    public class ARoute extends RouteBuilder {
      @Override
      public void configure() throws Exception {
        from("direct:acheck")
        .routeId("acheck")
        .transform(simple("${body}"));
      }
    }
    
[/code]

・Bプロジェクトの呼び出し部分

[code]

    package jp.co.bbb.route;
    ～～
    private void bCheck(){
       from("direct:bcheck")
       .routeId("bcheck")
       .to("direct:acheck");
    }
    
[/code]

・Bプロジェクトのcamel-context.xmlに下記の通りpackageScanを追加

[code]

    <packageScan>
        <package>jp.co.aaa.route</package>
        <package>jp.co.bbb.route</package>
        <includes>**.*</includes>
    </packageScan>
    
[/code]

### エラー内容

[code]

    org.apache.cxf.interceptor.Fault: No consumers available on endpoint: Endpoint[direct://XXXAルートXXX]. Exchange[ID-HW3650-3230-1517360482872-41-8] while invoking public abstract java.lang.Object jp.co.XXXXXX(java.lang.String) with params [XXX].
    
[/code]


CC BY-SA 3.0
2018-01-31T06:59:21.480
41343
2018-02-02T08:23:45.597
2018-02-01T00:53:45.647
27219
27219
question
apache-camel
ApacheCamelでインポートしたプロジェクトのルートを使用したい


こちら、自己解決しました。

Bプロジェクトcamel-context.xml中のpackageScanを下記の通り修正したところ、読み込みに成功しました。

[code]

    <bean id="aRouteBuilder" class="jp.co.aaa.route.ARouteClass" />
    <bean id="bRouteBuilder" class="jp.co.bbb.route.BRouteClass" /> 
    
    <camelContext ...>
        <routeBuilder ref="aRouteBuilder"/>
        <routeBuilder ref="bRouteBuilder"/>
    ...
    </camelContext>
    
[/code]

ありがとうございました。


CC BY-SA 3.0
2018-02-02T08:23:45.597
41405
2018-02-02T08:23:45.597
27219
41343
answer