2012-03-15 77 views
0

我試圖使用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&amp;radius=500&amp;types=food&amp;sensor=false&amp;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&amp;radius=500&amp;types=food&amp;sensor=false&amp;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)。這個假設是否正確?

我在這裏錯過了什麼?

謝謝。

回答

2

嘗試在您的要求使用&代替&amp;

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