【问题标题】:Call method from other applications on the same server从同一服务器上的其他应用程序调用方法
【发布时间】:2013-05-06 05:40:04
【问题描述】:

我有一个网络应用程序,用户可以在其中从数据库中查看他们创建的任务。

我想构建第二个应用程序,它调用数据库的所有条目并检查任务是否仍然是最新的或已过期。我正在寻找一种解决方案,让我的第二个应用程序可以强制我的第一个应用程序的所有会话重新加载它们的数据。

有没有办法调用可以影响所有正在运行的会话的方法?

public void callUpdate()
{
//get running Sessions of App1    
//send update event
}

public void EventListener(updateEvent)
{
//reload data
}

还是这样的?

这张图片可能有助于理解问题:

我还寻找了有关 Web 服务和 servlet 的解决方案,但我没有找到可以帮助我解决问题的方法。或者我在搜索时没有使用正确的关键字。

【问题讨论】:

    标签: web-services jakarta-ee web-applications


    【解决方案1】:

    您可以使用松散耦合应用程序的 JMS 解决方案。 webApp1 可以向触发任务检查的队列发送消息 (CheckForExpiredTasks)。 webApp2 将侦听该消息,并在收到时执行查找过期任务的工作。如果出现要使正在运行的会话过期的情况,webApp2 会向队列发送“ExpireAllSessions”消息。 webApp1 正在侦听正确的队列,将收到此消息并终止所有正在运行的会话。

    使用 JMS 会很好,因为这两个应用程序是否已部署并不重要。只要他们能拿到数据。 webApp2 本身不需要是 webApplication。只是一个使用 EJB 或 Spring 的轻量级服务应用程序。

    希望对你有帮助

    【讨论】:

    • 非常感谢 JMS 的提示。就像你说的一个很好的解决方案^^。
    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2018-05-28
    • 2015-05-30
    • 2011-07-02
    • 2015-05-22
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多