2012-08-21 6 views
7

Ich habe ein OSGi Bundle entfaltet auf Apache Karaf. Ich habe eine einfache Kamelroute:Camel Route von Jetty zu 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> 

Ich kann es nicht funktionieren. Wenn ich http://localhost:8282/services aufrufen, sollte es zu dem uri weiterleiten, der unten in setHeader spezifiziert wird. Stattdessen bekomme ich diese Ausnahme:

java.lang.IllegalArgumentException: Ungültige uri:/Dienste. Wenn Sie weiterleiten/Überbrückung http Endpunkte, dann die Option auf dem Endpunkt bridgeEndpoint aktivieren: Endpoint [http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select/]

Er sagt, dass ich Brücke Endpunkt aktivieren müssen, aber dies ist kein Endpunkt, ist es ein absolute URL, auf die ich meine Route verweisen möchte.

Ich habe versucht, Spring einzurichten wie here gezeigt, aber diese either.I haben versucht, dies nicht funktioniert, auch zu ändern:

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

dazu:

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

Kein Erfolg auch . Vielleicht kann jemand von jettyuri zu absoluten url routen?

+3

Können Sie bitte posten, wie Sie Ihr Problem – vashishth

Antwort

6

Haben Sie versucht bridgeEndpoint? Wie im Folgenden beschrieben:

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

Ihre Ziel-URL aussehen wird:

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

gelöst habe ich das Problem umgekehrt gelöst, aber wie auch immer, Danke, ich denke ich werde das in Zukunft brauchen, also werde ich das versuchen :) –