2017-09-13 1 views
0

Je suis en train d'écrire un itinéraire générique pour point final http requests.and n'est pas un value.Code statique pour la route:point final dans apche chameau lors de l'exécution

from("direct:processRequests") 
       .split(body().method("getItems"), new GroupedBodyAggregationStrategy()) 
       .parallelProcessing() 
       .to("direct:processRequest") 
     .end(); 


     from("direct:processRequest") 
     .when(body().method("getHttpDetails").method("getCallType").isEqualTo("GET")) 
      .setProperty("type",body().method("getInterfaceId"))//to identity response later 
      .setHeader(Exchange.HTTP_METHOD, body().method("getHttpDetails").method("getCallType")) 
      .setHeader(Exchange.CONTENT_TYPE, body().method("getHttpDetails").method("getPayLoadType")) 
      .setHeader("Accept", body().method("getHttpDetails").method("getPayLoadType")) 
      .to(body().method("getEndPointUri").toString()) 

Ici, je suis en train d'obtenir de point final corps.Mais à partir de maintenant il échoue à l'exception:

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 

Je sais que nous pouvons utiliser TOD() pour endpoints.But dynamique que nous avons besoin d'une partie du point final d'être présent dans TOD() ici, je suis en train de charger. point de terminaison entier dynamiquement. Y at-il un moyen de contourner cela?

Merci d'avance.

Répondre

0

La méthode configure de la classe RouteBuilder est invoquée une seule fois pour configurer la route, lors du démarrage.

Donc, si vous voulez une uri dynamique, puis utilisez TOD comme la FAQ dit http://camel.apache.org/how-to-use-a-dynamic-uri-in-to.html

+0

Merci pour responding.I essaie de se débrouiller uri (corps(). Méthode ("getEndPointUri"). ToString() Au début de camelContext, il essaie de résoudre l'expression ci-dessus, mais il ne peut être résolu qu'à l'exécution. Même avec toD() le même problème. Est-il possible de définir uri à rutime avec n'importe quel EIP. – sasidhar

+0

Utilisez un langage simple qui est intégré à D, par exemple: 'toD (" $ {body.getEndpointUri()} ")' et puisque c'est un getter, vous pouvez le faire un peu plus court - 'toD (" $ {body.endpointUri } ")' - http://camel.apache.org/simple –

+0

Son travail.Merci. – sasidhar