【问题标题】:BlazeDS and Java class in WAR fileWAR 文件中的 BlazeDS 和 Java 类
【发布时间】:2009-10-26 20:11:53
【问题描述】:

您好,我有一个 java 类,它已作为 WAR Web 应用程序部署在位于 JBOSS 上的 BlazeDS/Spring 服务器中。

除了将访问 WAR 文件的 Flex 应用程序之外,我还需要启动一些服务器端进程,这些进程将通过 AMF 消息将 BlazeDS “推送”到 Flex 客户端。

实现此服务器端进程的最佳方式是什么? - 它应该只是一个在 WAR 文件中从命令行调用的具有 main() 方法的类吗?可以做到这一点 - 不确定您是否可以从命令行运行 WAR 文件中的类? - 它应该只是一个在从命令行调用的 JAR 文件中具有 main() 方法的类吗?

不确定这里的标准做法是什么。关键是需要在 BlazeDS 服务器上启动进程才能将数据推送出去(而不是在 Flex 客户端上)。

他会感激任何帮助 迈克

【问题讨论】:

    标签: java apache-flex class blazeds war


    【解决方案1】:

    首先,您使用的是最新的 Spring/BlazeDS 集成吗?如果没有,我强烈建议您查看here。它可以大大简化为推送消息设置消息目的地。如果您愿意,它还允许您使用 JMS 和 Spring Integration 消息目的地以及集成 Spring Security。

    现在回答你的问题。您的数据推送服务的生命周期要求是什么?您是否希望能够从其他类控制此数据推送的参数(即启动和停止、频率等)?使用 Spring 创建此服务将允许您根据需要将其注入其他 bean 进行控制。

    我目前有一个类似的用例,我使用 BlazeDS 消息目标将遥测数据“推送”到客户端浏览器。我设置了一个由 Spring 实例化为单例实例的“服务”类。

    如果您不需要对此单例进行外部控制,那么我建议您使用带注释的@PostConstruct 或“init”方法来创建线程并使用代表主循环的匿名 Runnable 启动它。如果您的服务需要以预定义的频率推送数据,您可以考虑使用 java.util.concurrent.ScheduledExecutorService。

    无论哪种方式,您还需要设置一个带注释的@PreDestory 或“destroy”方法,该方法将在单例实例被销毁之前执行。这将允许您插入代码以安全地停止循环 Thread 或 ScheduledFuture 并在 Spring 容器关闭之前清理任何必要的资源。

    如果您想与您的服务进行进一步的交互,您可以使用服务接口从其他类(例如 Web 控制器等)对其进行操作。让您的类实现此接口并使用此接口将您的类注入其他类。对于更大胆的解决方案,您可以考虑使用 dm Server 或其他 OSGi 容器并创建 OSGi 服务。

    如果您需要有关此过程的进一步帮助,或者是否有我可以进一步说明的具体细节,请告诉我。

    【讨论】:

      【解决方案2】:

      马歇尔你的明星 - 谢谢!

      我正在使用 Spring @PostConstruct,这是一种享受。看来 Monitoring 类正在被 Spring 自动实例化,然后正在调用 @PostConstruct 方法。

      我还必须在 Spring 配置文件中包含以下内容才能使其正常工作:

      xmlns:context=springframework.org/schema/context springframework.org/schema/context springframework.org/schema/context/spring-context-2.5.xsd

      在@PostConstruct 方法中,我实现了一个简单的java.util.Timer,它将数据定期推送到Flex 客户端。 (我仍然需要通过 Spring 将其设置为单例 - 我是 Spring 新手!)

      就我的目的而言,ScheduledExecutorService 是否提供超出 Timer 类的任何好处?

      再次感谢 问候 迈克尔

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多