8

OSGiバンドルを展開していApache Karafます。私は単純なラクダルートを持っています:

    <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>

私はそれを働かせることができません。呼び出すと、 の下に指定された にhttp://localhost:8282/servicesルーティングする必要があります。代わりに、次の例外が発生しています。urisetHeader

java.lang.IllegalArgumentException: 無効な uri: /services. http エンドポイントを転送/ブリッジしている場合は、エンドポイントで bridgeEndpoint オプションを有効にします

ブリッジ エンドポイントを有効にする必要があると表示されていますが、これはエンドポイントではなく、ルートを指定しようとしている絶対 URL です。

ここSpringに示すように設定しようとしましたが、これも機能しませんでした。これも変更しようとしました:

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

これに:

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

同様に成功もありません。jetty uri多分誰かが絶対にルーティングする方法を知っていますurlか?

4

2 に答える 2

7

試しましたbridgeEndpointか?以下に説明するように:

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

ターゲット URL は次のようになります。

<to uri="jetty//http://172.28.128.158:8983/solr/targetjobs.co.uk.gtimedia.test/select?bridgeEndpoint=true&amp;throwExceptionOnFailure=false"/>
于 2012-08-22T09:33:08.487 に答える