Верблюд: Как включить амперсанд в качестве данных в URI (НЕ в качестве разделителя)?

(Camel 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 генерирует исключение ResolveEndpointFailedException с «Неизвестными параметрами=[{bar=null}].»

Если я попробую «foo%26bar», я получу тот же результат.

Если я попробую «foo&bar» Верблюд отвечает "Неизвестные параметры=[{amp;bar=null}]."

Я попытался использовать URISupport для создания URI. Он экранирует & до %26, а затем я получаю "Неизвестные параметры=[{bar= null}]".

Есть идеи?

6
задан Matt Flowers 13 June 2012 в 16:07
поделиться