Я пытаюсь использовать один кэш redis для хранения ответа 2 веб-сервисов - один - POST, а другой - GET. Для службы GET нет параметра запроса, по которому я могу сохранить ответ Webservice в Redis, когда я пытаюсь сохранить его с жестко закодированным ключом, он выдает ошибку ниже.
null key returned for cache operation (maybe you are using named params on classes without debug info?) Builder[public java.util.Map com.getResponse() throws com.adapter.framework.assetserviceadaptor.exception.ServiceExceptions] caches=[redis-cache] | key='#AssetCache' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'
Вот как я пытаюсь сохранить ответ службы GET
@Cacheable(value="redis-cache",key ="#AssetCache")
public Map<String, AssetDetailBO> getAssetsResponse() throws COAssetServiceExceptions {
try {
log.info("---- CO_STAGE=[ Caching Service ] ---- ");
return mergingBrokerageAndMutulFund(assetServiceImpl.getAssetResponse());
} catch (ServiceExceptions e) {
log.info("---- CO_STAGE=[ Exception while Calling Assets Adapter For COT ] ---- "
+ e.getErrorMessage());
throw e;
}
}
Вот так я храню ответ службы POST, все работает нормально.
@Cacheable(value="redis-cache",key ="#customerId")
public CustomerDTO retriveCustomerdetails( String customerId, String modelId,
String requestId) throws COException {
CustomerInfo csDTO;
try {
csDTO = csDTOAdapterImpl.
getCustomerDetails(customerId);
} catch (Exception e) {
e.printStackTrace();
}
return csDTO;
}