0

camel exchange の In Message から「Host」ヘッダーと「org.apache.cxf.request.uri」ヘッダーを削除する際に問題があります。cxfrs クライアントを使用してレスト エンドポイントを呼び出しています。しかし、それを呼び出す前に、removeHeaders タグを使用して、交換から不要なヘッダーをいくつか削除しました。一部のヘッダーが削除されます。しかし、「Host」ヘッダーと「org.apache.cxf.request.uri」ヘッダーを削除できませんでした。removeHeaders 呼び出しの直後に一時的にフローから削除されます。ただし、cxf rs クライアントを使用して呼び出すと、要求呼び出しヘッダーに表示されます。以下は、私のシナリオのサンプルです。

................................................................ ........... ${property.asd} == true && ${property.afd} == true

                        **<to uri="direct:removeUnnecessaryHeaders" />**

                        <setHeader headerName="CamelCxfRsUsingHttpAPI">
                            <constant>true</constant>
                        </setHeader>

                        <setHeader headerName="CamelHttpMethod">
                            <constant>PUT</constant>
                        </setHeader>

                        <setHeader headerName="CamelHttpPath">
                            <constant>/partner/managepartnerprofile</constant>
                        </setHeader>

                        <to uri="cxfrs:bean:aclient"/>
                    </when>

................................................................... ...................

**<route>
            <from uri="direct:removeUnnecessaryHeaders" />
            <removeHeaders pattern="CamelCxfRsResponseGenericType|org.apache.cxf.request.uri|CamelCxfMessage|CamelHttpResponseCode|Host" />
        </route>**
4

1 に答える 1

0

いくつかのテストを行ったところ、これらのヘッダーは CXF に WebClient でリクエストを作成する方法を伝えるものであり、HTTP プロトコル ヘッダーとして扱われるべきではないことがわかりました。

これらのヘッダーをサーバーに送信したくない場合は、camel-http または camel-http4 エンドポイントを使用できます。

于 2014-10-31T06:42:17.717 に答える