在我目前的情况下,我有两个网络服务,特此描述:
<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
}
在两个webservices之间交换该布尔值的最佳方法是什么? 我会考虑一个Singleton类,因此有类似的东西:
public void done(Long reqID){
Singleton.getInstance().setStatus(reqID, true);
}
public boolean isDone(Long reqID){
return Singleton.getInstance().getStatus(reqID);
}
但这是最好的方法吗?或者spring / cxf提供了更好的方法吗?
答案 0 :(得分:1)
您可以拥有一个包含reqID
及其当前状态的基础数据库。
使用单例很可能意味着你将把东西存储在内存中,这可能不会使你的应用程序非常大。一旦应用程序关闭和/或必须实现持久性机制,您也将丢失所有内容。