0
from("e1")
  .split()
     .method("bean", "m1")
     .to("e2")
  .end()
  .split()
     .method("bean", "m2")
     .to("e3");

コンパイラは2番目について文句を言いtoます。その理由は、何らかの理由で、2番目のsplit戻り値が。ExpressionCaluseではなくExpressionClause<SplitDefinition>、次のmethod戻り値のタイプが。ではないとObject見なされるためSplitDefinitionです。

4

1 に答える 1

0

Eclipseで試してみましたが、最初にあなたと同じ結果が得られました(Eclipseコード補完でエラーが表示されます)。次に、ルートを書き直しました (たとえば、への割り当てで分割します)。

ProcessorDefinition pd = from("e1").... 
pd.split()...

その後、元のコードに戻ると、最終的に Eclipse はアイデアを正しく理解し、エラー マーカーは消えました。あなたも日食を試みていたかどうかわかりませんか?

@Override
public void configure() throws Exception {
            from("e1")
              .split()
                 .method("bean", "m1")
                 .to("e2")
              .end()
              .split().method("bean", "m2")
                 .to("e3");
        }

つまり、うまくいくはずです。ProcessorDefinition の split() の署名は正しいです。

public ExpressionClause<SplitDefinition> split()

これは私の開発のどこかで不具合が発生したと思います。環境 そしておそらくあなたのものも..または何か。とにかく、奇妙です。

于 2012-08-13T20:13:18.380 に答える