2012-08-21 17 views
7

Tengo un paquete OSGi implementado en Apache Karaf. Tengo una simple ruta en camello:Camel Route from Jetty to Absolute URL

<camelContext trace="true" xmlns="http://camel.apache.org/schema/spring"> 
     <route> 
      <from uri="jetty:http://0.0.0.0:8282/services?handlers=securityHandler&amp;matchOnUriPrefix=true"/> 
      <setHeader headerName="CamelHttpQuery"> 
       <constant>wt=xml&amp;rows=1000000&amp;fl=nid,title&amp;fq=sm_vid_Third_parties_with_which_this_organisation_s_content_can_be_shared:%22Indeed%22</constant> 
      </setHeader> 
      <to uri="http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/?"/> 

<!--  <split> 
       <xpath>//int[@name='nid']</xpath> 
      </split>--> 
      <convertBodyTo type="java.lang.String" /> 
     </route> 
    </camelContext> 

No lo puedo hacer funcionar. Cuando invoco http://localhost:8282/services, debe enrutar al uri especificado debajo del setHeader. En cambio, recibo esta excepción:

java.lang.IllegalArgumentException: Uri no válido:/services. Si va a reenviar/puente extremos HTTP, a continuación, active la opción bridgeEndpoint en el punto final: punto final [http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/]

Se dice que necesito para permitir punto final del puente, pero esto no es un punto final, se trata de una URL absoluta a la que estoy tratando de apuntar mi ruta.

me han tratado de establecer Spring como se muestra here pero esto no funcionaba either.I también han tratado de cambiar esta situación:

<to uri="http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/?"/> 

a esto:

<to uri="jetty//http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/?"/> 

Sin éxito, así . Tal vez alguien sabe cómo enrutar desde jettyuri a absoluto url?

+3

¿Puede usted por favor, puesto como resolvió su problema – vashishth

Respuesta

6

¿Has probado bridgeEndpoint? Tal como se describe a continuación:

http://camel.apache.org/how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html

Su dirección URL de destino se verá así:

<to uri="jetty//http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select?bridgeEndpoint=true&amp;throwExceptionOnFailure=false"/> 
+0

He resuelto el problema al revés, pero de todos modos, gracias, creo que lo necesitaré en el futuro, así que lo intentaré :) –