OAuth2Restorations:java.lang.IllegalArgumentException:URI不是绝对的

OAuth2Restorations:java.lang.IllegalArgumentException:URI不是绝对的,java,spring-boot,resttemplate,Java,Spring Boot,Resttemplate,我试图使用OAuth2Restorations调用下面这样的api,并得到“java.lang.IllegalArgumentException:URI不是绝对的”异常。我错过了什么 public void sendSMS(String message, String destination) { String messageUrl = "http://baseurl/uri" System.out.println("Message url: " + mess

我试图使用OAuth2Restorations调用下面这样的api,并得到“java.lang.IllegalArgumentException:URI不是绝对的”异常。我错过了什么

 public void sendSMS(String message, String destination) {
        String messageUrl = "http://baseurl/uri"

        System.out.println("Message url: " + messageUrl);

        JSONObject messageObject = new JSONObject()
            .put("message", message)
            .put("destination", destination);

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("Accept", "application/json");

        HttpEntity<Object> request = new HttpEntity<>(messageObject, headers);

        try {
            ResponseEntity<String> exchange = restTemplate
                .exchange(URI.create(messageUrl), HttpMethod.POST, request, String.class);

            System.out.println("Response is: " + exchange.getBody());
        } catch (Exception e) {
            e.printStackTrace();
        }
public void sendSMS(字符串消息、字符串目的地){
字符串messageUrl=”http://baseurl/uri"
System.out.println(“消息url:+messageUrl”);
JSONObject messageObject=新的JSONObject()
.put(“message”,message)
.put(“目的地”,destination);
HttpHeaders=新的HttpHeaders();
添加(“内容类型”、“应用程序/json”);
添加(“接受”、“应用程序/json”);
HttpEntity请求=新的HttpEntity(messageObject,Header);
试一试{
ResponseEntity exchange=restTemplate
.exchange(URI.create(messageUrl)、HttpMethod.POST、request、String.class);
System.out.println(“响应为:”+exchange.getBody());
}捕获(例外e){
e、 printStackTrace();
}

发现问题。在配置OAuthTemplate时,我没有提供完整的url

@Bean
    public OAuth2ProtectedResourceDetails clientCredentialsResourceDetails() {
        ClientCredentialsResourceDetails resource = new ClientCredentialsResourceDetails();
        resource.setAccessTokenUri(
           "http://baseurl/token")      resource.setGrantType("client_credentials");
        resource.setClientId(sapProperties.getAppKey());
        resource.setClientSecret(sapProperties.getAppSecret());
        return resource;
    }
可能是这样