无法使用spring的resttemplatebuilder

rsl1atfo  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(430)

我试图在xconfiguration.java中创建以下bean:

@Bean
public RestTemplate xRestTemplate(@Qualifier("restTemplateBuilder") RestTemplateBuilder restTemplateBuilder) throws FileNotFoundException {
    return AdfsRestTemplate.builder()
            .restTemplateBuilder(restTemplateBuilder)
            .adfsClientTokenProvider(getXTokenProvider())
            .build();
}

private AdfsClientTokenProvider getXTokenProvider() throws FileNotFoundException{
    return AdfsClientTokenProvider.builder().id("config-credentials").providerUrl(providerUrl)
            .clientId(clientId).resourceUri(protectedResourceUri)
            .enableX509CertificateAuthentication(
                    AdfsKeystoreUtil.getKeystore(keyStore),
                    AdfsKeystoreUtil.getPassword(keyStorePassword),
                    AdfsKeystoreUtil.getAlias(certAlias))
            .build();
}

我在这里注射:

@Autowired
    @Qualifier("xRestTemplate")
    private RestTemplate restTemplate;

但我有个错误:


***************************

APPLICATION FAILED TO START

***************************

Description:

Parameter 0 of method xRestTemplate in xxx.XConfiguration required a bean of type 'org.springframework.boot.web.client.RestTemplateBuilder' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)
    - @org.springframework.beans.factory.annotation.Qualifier(value="xRestTemplate")

Action:

Consider defining a bean of type 'org.springframework.boot.web.client.RestTemplateBuilder' in your configuration.

有人能告诉我发生了什么配置问题吗?我想我可以使用spring的默认restemplatebuilder?
我使用的是springframework:2.4.3
更新:我做了以下工作,创建了一个返回restemplatebuilder的新bean,并将其连接到我的xrestemplate方法中。customresttemplatebuilder.java

@Configuration
public class CustomRestTemplateBuilder {

    @Bean("restTemplateBuilder")
    public RestTemplateBuilder getRestTemplateBuilder() {
        return new RestTemplateBuilder();
    }
}

现在它抛出这个错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xQueryService': Unsatisfied dependency expressed through field 'restTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xRestTemplate' defined in class path resource [XXX/XConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.client.RestTemplate]: Factory method 'xRestTemplate' threw exception; nested exception is java.lang.NullPointerException

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题