8

(キャメル 2.9.2)

非常に単純なユースケースですが、答えが見つからないようです。私のコードはこれに要約されます:

String user = "user";
String password = "foo&bar";

String uri = "smtp://hostname:25?username=" + user +
    "&password=" + password + 
    "&to=somthing@something.com"; // etc. You get the idea

from("seda:queue:myqueue").to(uri);

Camel は、「Unknown parameters=[{bar=null}]」で ResolveEndpointFailedException をスローします。

「foo%26bar」を試すと、同じ結果が得られます。

「foo&bar」を試してみると、キャメルは「Unknown parameters=[{amp;bar=null}]」と応答します。

URISupport を使って URI を作成してみました。& を %26 にエスケープすると、「Unknown parameters=[{bar=null}]」が再び表示されます。

何か案は?

4

3 に答える 3

10

Camel 2.11以降、生の構文を使用できます

例えば:

.to("ftp:joe@myftpserver.com?password=RAW(se+re?t&23)&binary=true"

上記の例では、パスワード値を未加工として宣言しており、実際のパスワードは入力したとおりになります (例: se+re?t&23)。

https://cwiki.apache.org/confluence/display/CAMEL/How+do+I+configure+endpoints

于 2013-05-07T13:42:30.180 に答える
1

URI の権限の一部としてパスワードを指定できます (前など)。また、& は %26 にエスケープする必要がありますが、Camel にはエスケープされた値をうまく解析できないというバグがありました。2.10 が出たら試してみてください。

于 2012-06-14T04:11:46.993 に答える