我正在为我的Java服务器实现REST API。通过API获得的资源之一实际上是创建C ++ DCOM对象并反映其值。 我正在使用的Java到COM桥是J-Integra。
问题是我需要保持DCOM对象为后续的REST调用保持活动状态,但是只要它的Java引用是对象就是活动的 - 直到REST会话最多到期为止。
如果我不再需要DCOM对象,怎么能保持活着? 到目前为止,我唯一想到的就是使用EJB,然后它将启动DCOM对象并保持其引用。我不是EJB的专家,但我认为a)它是一个过度的解决方案b)服务器可能会缓存EJB(钝化?),从而失去了DCOM参考。
有什么建议吗?
由于 因巴尔
答案 0 :(得分:2)
如何保持DCOM对象的活动状态 直到我不再需要它?
我想这取决于不再需要对象意味着什么。你怎么知道你什么时候完成它?
这些DCOM实例是否适用于整个网站,或仅适用于特定用户?如果在站点范围内,接收这些请求的资源是否可以保留对该对象的引用?如果没有,也许您需要Yet Another Layer来为您管理这些对象。
您使用什么框架进行REST?
以下是一些更多信息:DCOM对象 正在执行一组任务异步。所以, 从Java主要调用它 服务器返回immidietialy,而 DCOM对象继续执行。 不幸的是,它已经很老了 对象,我无法控制它 实现或接口 - 我不能 改变这一点。 DCOM对象没有 甚至有COM活动。唯一的方法 知道是否完成,就是要进行民意调查 它使用特定的方法 (的getStatus)。我不想轮询它 从我的REST API实现,如 这将打破REST概念。一世 没有办法提前知道如何 这将花费DCOM对象 运行,所以我不能保持会话 活得那么久。
所以基本上,你想使用REST调用来启动一个操作但不关心它什么时候完成或它的状态是什么?如果是这样,你可以启动一个启动DCOM操作的线程,轮询状态直到操作被认为完成,然后破坏DCOM操作吗?
答案 1 :(得分:0)
将组件注册到COM +,它保持活动状态。请在此link查看更多信息。