我試圖使用Apache的駱駝(2.10-SNAPSHOT)和春季(3.0.7.RELEASE)和Tomcat(7.0.26)谷歌Places API的集成作爲我的Web服務器conainer。Apache的駱駝 - 簡單的HTTPS谷歌的地方叫 - 春DSL和Java DSL的區別駱駝-HTTP組件?
當我宣佈在Spring配置XML的路線(見下文),我可以看到我的Tomcat日誌正確的輸出響應。
<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。現在
,我試圖做同樣的定義在擴展RouterBuilder
public class GooglePlacesRoute extends RouteBuilder {
@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");
}
}
class MyCustomProcessor implements Processor {
@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);
}
}
我的駱駝航線部署和正確啓動一個Java類,我的路線。然而,當我調用它,我沒有得到預期的輸出。我收到了Google服務器的以下回復。
{ "html_attributions" : [], "results" : [], "status" : "REQUEST_DENIED" }
我假設我沒有做什麼特別的事情在我的Java DSL來處理HTTPS(而不是HTTP)。這個假設是否正確?
我在這裏錯過了什麼?
謝謝。