0

これは些細なことですが、どういうわけか私にとってはうまくいきません。Camel でホストされている RESTLET サーバーを呼び出そうとしています。Camelクライアントで動作しますが、同じものを裸のApache HTTPクライアントで動作させようとしています。Camel is client は次のとおりです。

   CamelContext context = new DefaultCamelContext();
   Map<String, Object> headers = new HashMap<String, Object>();
   context.createProducerTemplate().requestBodyAndHeaders("restlet:http://localhost:8086/Bookmarkee/boolean/V2?restletMethod=post", "Halleluia",headers);

私が動作させようとしている HTTP クライアントは次のとおりです。

        HttpPost httppost = new HttpPost("http://localhost:8086/Bookmarkee/boolean/V2?restletMethod=post");
        StringEntity e= new StringEntity("Halleluia",ContentType.create("text/plain", "UTF-8"));
        httppost.setEntity(e);
        CloseableHttpResponse response = httpclient.execute(httppost);

ただし、サーバーでは、応答はサーブレット エンジンによってストリームから読み取られません。その結果、コンポーネントに文字列ではなく入力ストリームが渡されます。

どんな手掛かり?

4

1 に答える 1

0

キャメルルートがサーバーからの空の応答を処理しようとしたときに同じ問題が発生しました (200 OK、Content-Length:0、Content-Type:application/json) http コンポーネントで要求するために使用した URL のバグを見つけて修正した後に修正しました

于 2013-11-07T11:10:48.047 に答える