gpt4 book ai didi

java - 在 REST 调用上使 Java 服务器保持 DCOM 对象处于 Activity 状态

转载 作者:行者123 更新时间:2023-12-02 08:38:30 25 4
gpt4 key购买 nike

我正在为我的 Java 服务器实现 REST API。通过 API 获得的资源之一实际上是创建一个 C++ DCOM 对象并反射(reflect)其值。我使用的 Java 到 COM 桥接器是 J-Integra。

问题是我需要保持该 DCOM 对象处于 Activity 状态以供后续 REST 调用使用,但只要该对象的 Java 引用存在,该对象就处于 Activity 状态 - 最多直到 REST session 过期为止。

如何使 DCOM 对象保持 Activity 状态,直到我不再需要它为止?到目前为止,我唯一想到的就是使用 EJB,它将成为启动 DCOM 对象并保存其引用的 EJB。我不是 EJB 方面的专家,但我认为 a) 这是一个过度的解决方案 b) EJB 可能被服务器缓存(钝化?),从而丢失 DCOM 引用。

有什么建议吗?

谢谢因巴尔

最佳答案

How can I keep the DCOM object alive until I no longer needs it?

我想这取决于不再需要该对象意味着什么。你怎么知道什么时候完成了?

这些 DCOM 实例适用于整个站点还是仅适用于特定用户?如果在站点范围内,接收这些请求的资源是否可以保留对该对象的引用?如果没有,也许您需要另一个层来为您管理这些对象。

您使用什么框架进行 REST?

<小时/>

Here's some more info: The DCOM object is executing a set of tasks async. So, the main call to it from the Java server returns immidietialy, while the DCOM object continues execution. Unfortuantley, it's quite an old object and i have no control over its implementation or interface - I can't change that. The DCOM object doesn't even have COM events. The only way to know if it is done or not, is to poll it using a specific method (getStatus). I don't want to poll it from my REST API implementation, as this will break the REST concept. I have no way to know in advance how long it will take for the DCOM object to run, so I can't keep the session alive that long.

基本上,您想使用 REST 调用来启动操作,但不关心它何时完成或其状态是什么?如果是这样,您是否可以启动一个线程来启动DCOM操作,轮询状态直到操作被认为完成,然后销毁DCOM操作?

关于java - 在 REST 调用上使 Java 服务器保持 DCOM 对象处于 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/518435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com