Я пытаюсь интегрировать Google Places API, используя Apache Camel (2.10-SNAPSHOT) и Spring (3.0.7.RELEASE) с Tomcat (7.0.26) в качестве сервера веб-конфигурации.
Когда я объявляю маршрут в XML-конфигурации Spring (см. Ниже), я вижу правильный выходной ответ в моих журналах Tomcat.
</p>
<pre><code><route id="google-places-route">
<from uri="direct:start" />
<to uri="https://maps.googleapis.com/maps/api/place/search/json?location=40.446788,-79.950559&radius=500&types=food&sensor=false&key=my-google-api-key" />
<to uri="stream:out"/>
</split>
</route>
Обратите внимание, что здесь используется верблюжья схема https, а НЕ http.
Теперь я пытаюсь сделать то же самое, определяя мой маршрут в классе Java, который расширяет RouterBuilder
public class GooglePlacesRoute extends RouteBuilder {</p>
<pre><code>@Override
public void configure() throws Exception {
from("direct:start").process(new MyCustomProcessor()).to("https://maps.googleapis.com/maps/api/place/search/json?location=40.446788,-79.950559&radius=500&types=food&sensor=false&key=my-google-api-key").to("stream:out");
}
}
Класс MyCustomProcessor реализует Процессор {
@Override
public void process(Exchange exchange) throws Exception {
exchange.setPattern(ExchangePattern.InOut);
Message inMessage = exchange.getIn();
inMessage.setHeader(Exchange.HTTP_METHOD, "GET");
exchange.getIn().setBody("", String.class);
}
}
Мой маршрут Camel развернут и запущен правильно.Однако, когда я вызвал его, я не получил ожидаемый результат.Я получаю следующий ответ от серверов Google.
{
"html_attributions" : [],
"results" : [],
"status" : "REQUEST_DENIED"
}
Я предполагаю, что мне не нужно делать ничего особенного в моем Java DSL для обработки HTTPS (вместо HTTP).Это предположение верно?
Что мне здесь не хватает?
Спасибо.