2017-09-13 14 views
0
私は、HTTP requests.andエンドポイントのための一般的なルートを書いています

中にapcheラクダにエンドポイントを取得するには、ルートの静的value.Codeではありません今のように、それは例外で失敗しますランタイム

Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be found for: ognl(simple{${body}}, getEndPointUri), please check your classpath contains the needed Camel component jar. 
at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:81) 
at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:211) 
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:107) 
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:113) 
at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62) 
at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56) 
at org.apache.camel.model.ProcessorDefinition.createProcessor(ProcessorDefinition.java:483) 
at org.apache.camel.model.ProcessorDefinition.createOutputsProcessorImpl(ProcessorDefinition.java:446) 
at org.apache.camel.model.ProcessorDefinition.createOutputsProcessor(ProcessorDefinition.java:413) 
at org.apache.camel.model.ProcessorDefinition.createOutputsProcessor(ProcessorDefinition.java:165) 
at org.apache.camel.model.ExpressionNode.createFilterProcessor(ExpressionNode.java:109) 
at org.apache.camel.model.WhenDefinition.createProcessor(WhenDefinition.java:74) 
at org.apache.camel.model.WhenDefinition.createProcessor(WhenDefinition.java:32) 
at org.apache.camel.model.ProcessorDefinition.createProcessor(ProcessorDefinition.java:483) 
at org.apache.camel.model.ChoiceDefinition.createProcessor(ChoiceDefinition.java:135) 
at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:534) 
at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:495) 
at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:219) 
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069) 
... 23 more 

私たちは)我々はTOD(に存在するようにエンドポイントの一部を必要とするため、動的endpoints.But用)(TODを使用することができます知っているここで私がロードしようとしています。全体のエンドポイントを動的に変更します。

ありがとうございます。

答えて

0

RouteBuilderクラスのconfigureメソッドは、開始時にルートを設定するために1回だけ呼び出されます。あなたが任意の動的なURIをしたい場合はFAQはresponding.Iため http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html

+0

おかげで(身体()により、URIを取得しようとしています。方法( "getEndPointUri")と言うよう

ので、その後、TODを使用しています。のtoString() )camelContextの開始時に、上記の式を解決しようとしますが、実行時にのみ解決できます。toD()と同じ問題です。 – sasidhar

+0

toD( "$ {body.getEndpointUri()}")のようなtoDに組み込まれている簡単な言語を使ってください。ゲッターのために少し短くすることができます - 'toD(" $ {body.endpointUri } ")' - http://camel.apache.org/simple –

+0

その仕事。ありがとう。 – sasidhar