【问题标题】:Deploy War into Mule Standalone server将 War 部署到 Mule 独立服务器中
【发布时间】:2012-06-20 17:50:46
【问题描述】:

我有一个 mule 独立服务器,其中包含我正在开发的应用程序。该应用程序使用的许多服务将在未来从 Mule 容器中移出到 JBoss 集群中。正因为如此,我在 mule 流和 Web 服务之间保持了强烈的分离。但是,到目前为止,我需要将 War 文件部署在与我的 Mule 应用程序相同的服务器上。

看起来骡子应该能够在其中运行我的战争。有谁知道这是否可能?我暂时可以在 Mule 可部署 zip 中添加 War,但也想单独部署 War。

【问题讨论】:

    标签: mule


    【解决方案1】:

    Mule ESB 不是标准的 Java EE 容器,因此它不能直接处理 WAR 文件。事实上,骡子应用程序具有以下结构:

    /
     \- classes                 // application-specific resources(e.g. logging config, properties)
     |- lib                     // application-specific jars
     |- mule-config.xml         // Main Mule configuration file, also monitored for changes
     |- mule-deploy.properties  // Application deployment descriptor (optional)
     |- mule-app.properties     // custom properties to be added to the registry instance used by the application (optional)
    

    这里有更好的解释:

    http://www.mulesoft.org/documentation/display/MULE3USER/Application+Format

    您可以做的是利用 mule jetty 连接器来公开您的 Web 应用程序。您的连接器配置将如下所示:

     <jetty:connector name="jettyConnector">
        <jetty:webapps directory="${app.home}/webapps" port="8083"/>
    </jetty:connector>
    

    然后您将把您的战争文件放入 webapps 文件夹中。你可以参考书店的例子:

    http://www.mulesoft.org/documentation/display/MULE3EXAMPLES/Bookstore+Example

    【讨论】:

    • 这看起来很有希望……唯一的问题是 CXF 客户端在 Jetty 连接器启动之前就崩溃了……
    • 您是否在您的 web 应用程序中导入 cxf 依赖项?这可能会导致一些类加载问题,因为 mule 自己提供 cxf
    • 我认为是我在 jaxws-client 和 WSDL 之间存在名称差异。它仍然不喜欢干净地取消部署,我接下来必须弄清楚。
    • 万一有人遇到这种情况.... 将战争的 lib 文件从 src/main/apps/webapps/warName/WEB-INF/lib 移动到 src/main/apps/lib ,或者在我的情况下,通过使它们成为 Maven 依赖项,让 Jetty 干净地取消部署。似乎 Jetty 7 和 8 在这个区域进行了一些清理工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多