我看过很多关于soap处理程序是实现基本缓存的理想工件的博客、文章和技术说明,但没有一篇进一步解释如何实现它。
我有一个只使用jdk构建的简单web服务(不在app服务器中托管),为此我尝试使用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;
}
但是,正如我喜欢启用或禁用缓存槽配置的想法一样,我同意最好的地方之一是可以通过处理程序xml配置打开或关闭的soap处理程序。
问题是:
-
在服务器处理程序中,我应该缓存什么?整个反应还是仅仅是价值然后重建整个反应?但是,在这个基础上。
-
它是一个内部的soap服务,您将把缓存、服务器或客户端放在哪里?或者两者都有?