【发布时间】:2019-08-14 14:36:00
【问题描述】:
我目前正在使用弹簧。我创建了一个使用基于另一个模块的服务的 restClient。我正在尝试实例化这个 restClient 但我总是收到一个空指针异常。经过调查,似乎封装的属性(对象)没有实例化,它们的嵌套封装也没有。
这是成员变量、我的类、构造函数和我试图调用的方法。
private OAuth2RestTemplate oAuth2RestTemplate;
private ConsumedDestinationModel consumedDestinationModel;
@Autowired
private DestinationService<ConsumedDestinationModel> destinationService ;
public DefaultSacRestClient()
{
consumedDestinationModel = getSacConsumedDestinationModel(getDestinationService().getAllConsumedDestinations());
oAuth2RestTemplate = configureOAuth2Credentials(getConsumedDestinationModel());
}
@Override
public List<Story> fetchStories() {
List<Story> stories = new ArrayList<>();
String endpoint = getConsumedDestinationModel().getUrl() + STORIES_URL;
stories.add(oAuth2RestTemplate.getForObject(endpoint, Story.class));
return stories;
}
在我的构造函数中,两个方法 getSacConsumedDestinationModel() & configureOAuth2Credentials() 返回一个对象。
但方法 getSacConsumedDestinationModel() 使用未实例化的destinationService。我不明白为什么destinationService成员变量没有被实例化。
这是仅对应于我正在处理的模块的应用程序上下文。此应用程序上下文附加到应用程序的全局应用程序上下文
<bean id="defaultSacRestClient" class="de.hybris.platform.sacintegrationbackoffice.client.impl.DefaultSacRestClient">
<property name="destinationService" ref="destinationService"/>
</bean>
<bean id="destinationService" class="de.hybris.platform.apiregistryservices.services.impl.DefaultDestinationService">
<property name="destinationDao" ref="destinationDao"/>
</bean>
<bean id="destinationDao" class="de.hybris.platform.apiregistryservices.dao.impl.DefaultDestinationDao">
<property name="flexibleSearchService" ref="defaultFlexibleSearchService"/>
<property name="modelService" ref="defaultModelService"/>
</bean>
是不是bean配置问题?我错过了什么吗?肯定是我做错了什么。
【问题讨论】:
标签: java spring-boot hybris