在当前情况下,我有两个Web服务,在此进行描述:
<jaxws:endpoint id="backendService"
implementor="com.foo.soap.BackendServiceImpl"
address="/BackendService" />
<jaxws:endpoint id="frontendService"
implementor="com.foo.soap.FrontendServiceImpl"
address="/FrontendService" />
Backendservice侦听某些后台应用程序以通知进度,而frontendservice允许前台应用程序知道数据是否准备就绪。
因此,简单地说:
public Interface Backendservice{
public void done(Long reqID); //sets backendservice status to true for that request ID
}
public Interface FrontendService{
public boolean isDone(Long reqID); //returns true if that request was completed
}
在两个Web服务之间交换布尔值的最佳方法是什么?
我考虑过一个Singleton类,因此有这样的事情:
public void done(Long reqID){
Singleton.getInstance().setStatus(reqID, true);
}
public boolean isDone(Long reqID){
return Singleton.getInstance().getStatus(reqID);
}
但这是最好的方法吗?还是spring / cxf提供了更好的方法?
最佳答案
您可能有一个包含您的reqID
及其当前状态的基础数据库。
使用单例很可能意味着您将把东西存储在内存中,这可能不会使应用程序扩展太多。一旦应用程序关闭和/或必须实施持久性机制,您还将丢失所有内容。