在当前情况下,我有两个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及其当前状态的基础数据库。

使用单例很可能意味着您将把东西存储在内存中,这可能不会使应用程序扩展太多。一旦应用程序关闭和/或必须实施持久性机制,您还将丢失所有内容。

07-26 05:17