【问题标题】:Is it possible to run Mule 2.2.1 on spring 3?是否可以在 spring 3 上运行 Mule 2.2.1?
【发布时间】:2013-01-18 19:50:24
【问题描述】:

我们有一个当前运行 spring 2.5.6 和 mule 2.2.1 的应用程序。我们决定继续升级应用程序以使用 Spring 3.2,我们还将 Spring Security 升级到 3.1。我了解 Mule 2.2.1 使用 spring 2.5.6 进行配置等等。我们将重构我们的代码并构建整个项目。然而,在部署应用程序并启动服务器后,我的服务器在大约 6 秒内启动,而不是正常的 30 秒,然后我注意到我的所有服务都没有加载。不幸的是,经过几天的调查,我找不到一切都失败的地方,因为包括 spring 和 mule 日志在内的任何日志中都没有错误。我的问题是有可能让这些一起玩,还是我应该忘记让它发挥作用。

我阅读了这篇文章 http://lifeinide.blogspot.com/2012/07/spring-3-and-mule-2-initialized-by.html 并按照这些说明进行操作,但仍然无法正常工作。 Mule 说它启动得很好,没有任何错误,但我可以访问我的任何服务。有什么帮助吗?谢谢

【问题讨论】:

    标签: spring spring-security mule spring-3


    【解决方案1】:

    感谢@genjosanzo 的指点。它帮助我们更好地挖掘了这个问题并最终使它发挥作用。

    @mtanzania, 我们也有类似的需求——需要让 Mule 2.2.1 与 Spring 3.2.x 版本一起工作。升级到 Mule 3 涉及重写 Mule 扩展,例如异常处理策略、RabbitMQ Mule 传输等。因此排除了升级到 Mule 3。 为了完成这项工作,您需要从您的模块中重写/更新 3 个 java 文件:

    groupId:org.mule.modules
    artifactId:mule-module-spring-config
    version:2.2.1
    

    实现来自:

    groupId:org.mule.modules
    artifactId:mule-module-spring-config
    version:3.4.0
    

    更具体地说,您需要更新/升级这些类:MuleBeanDefinitionDocumentReader.java、MuleApplicationContext.java 和 SpringXmlConfigurationBuilder.java

    使用这些更新版本,您可以继续创建 MuleContext,如下所示:

    SpringXmlConfigurationBuilder springConfigBuilder = new   SpringXmlConfigurationBuilder(muleConfigPaths);
    MuleContext context = new DefaultMuleContextFactory().createMuleContext(springConfigBuilder)
    

    修改后的实现在这里:Mule in Trooper,使用它的示例类在这里:Trooper Mule container

    【讨论】:

      【解决方案2】:

      Mule 使用一些内部 spring API 来解析 mule 配置并创建对应的 bean。

      出于这个原因,升级可能适用于 spring 3.0.x,但我很确定 spring 3.1.x 出现了问题(即引入了this code 以保持向后兼容性)。

      升级 mule 怎么样?大多数 2.2.x 语法仍然受支持,并且在较新的 mule 版本中引入了许多新功能。

      【讨论】:

      • 感谢 genjosanzo,我们也尝试升级 mule,但我们也依赖 jbpm 3 而 mule 3 使用 jbpm4,升级 jbpm 目前对我们来说不是一个选项,因为它也是除了我们可用的资源之外,还有很多需要解决的问题,而且经过一些在线研究,似乎对 jbpm4 的未来有些担忧,因为 redhat 不支持,(我不确定这些说法的真实性,但有足够的担忧我们要担心)。再次感谢您的回答。
      【解决方案3】:

      FWIW,@regunathb 的上述回答是正确的。在这三个类中进行修补工作。但是,重要的是要注意,来自 mule-module-spring-config 的这些类的 3.4 版本将不会按原样工作。您必须获取 @regunathb 在 GitHub 上发布的类的修改版本,否则您最终会遇到 3.4 和 2.2.1 之间的各种不兼容问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-28
        • 2012-02-10
        • 2019-01-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多