Я видел множество блогов, статей и технических заметок о обработчике SOAP, которые являются идеальным артефактом для реализации базового кэша, но ни один из них не идет дальше и не объясняет, как его реализовать.
У меня естьпростой веб-сервис, построенный только на JDK (не размещенный на сервере приложений), для которого я пытаюсь реализовать простой кэш с использованием EH Cache.Пока что кеш реализован на клиенте и сервере, и он также смешан с бизнес-логикой, и мне это не нравится.
С точки зрения клиента это довольно просто.
public String getLatestValueClient() {
String value = cache.get("LATEST_VALUE");
if(value==null) {
// invoke the web service
xjcClient.getLatestValue(); // client built with XJC
}
return value;
}
Или на сервере это также проще.
@WebMethod
public String getLatestValue() {
String value = serverCache.get("LATEST_VALUE");
if(value==null) {
// business logic for retrieving the value
}
return value;
}
Но, поскольку мне нравится идея включить или отключить конфигурацию впадины кеша, я согласен, что это одно из лучших мест, где ее разместить.будет обработчик SOAP, который может быть включен или выключен через конфигурацию обработчика XML.
Вопросы:
- В обработчике сервера, что я должен кэшировать?Весь ответ или только значение, а затем восстановить весь ответ?Но на каком основании.
- Это внутренняя служба SOAP, куда бы вы поместили кеш, сервер или клиент?Или и то и другое?