【问题标题】:mule versioning on web serviceWeb 服务上的 mule 版本控制
【发布时间】:2013-03-07 20:48:39
【问题描述】:

我在同一个 mule 服务器上部署了具有 2 个不同版本的相同 mule webservice 应用程序。我们称之为 MuleApp.1.0 和 MuleApp.1.1。流程就像 mulesoft 网站上的 webservice 流程示例一样简单。他们的 wsdl 网址不同:

http://www.myhost.com:25101/MuleApp.1.0/Service?wsdl
http://www.myhost.com:25101/MuleApp.1.1/Service?wsdl

当另一个没有部署在 mule 服务器上时,它们都按预期工作。当我将它们都部署在同一个 mule 服务器上时,就会出现问题,就像我以前在 WebLogic 中所做的那样。现在我可以访问 MuleApp.1.1,但是当我尝试访问 MuleApp.1.0 时,出现如下错误

07-Mar-2013:14:52:57.142        VWILVM3667      [MuleApp.1.1].connector.http.mule.default.receiver.03
WARN    org.mule.transport.http.HttpMessageReceiver     NA
No receiver found with secondary lookup on connector: connector.http.mule.default with URI key: http://www.myhost.com:25101/MuleApp.1.0/Service

这应该是一个非常常见的版本控制案例。我在配置中遗漏了什么?

【问题讨论】:

    标签: web-services mule esb flow mule-studio


    【解决方案1】:

    您不能在同一个 Mule 实例中让两个不同的应用程序共享同一个 HTTP 端口。

    那么可能发生的情况是MuleApp.1.0 没有正确部署(检查日志),这就是为什么没有端点监听/MuleApp.1.0

    要么:

    • 在两个应用中使用不同的端口,
    • 将两个流程放在一个应用程序中。
    • 创建一个前端应用程序,它侦听端口 25101 以及 /MuleApp.1.0/MuleApp.1.1 路径,并将请求分派到专用端口(例如 25102 和 25103)上的 MuleApp.1.0MuleApp.1.1

    【讨论】:

    • 大卫 这对我来说没有意义。你的意思是我不能在同一个 mule 服务器上运行 2 个 Web 应用程序(端口 80)吗?使用不同的 URL 是对 Web 服务应用程序进行版本控制的唯一方法。我们在 WebLogic 上运行的其他应用程序上使用相同的方式。您是在告诉我 Mule 无法像 WebLogic 或 JBoss 这样的其他应用程序服务器来实现这一点吗?如果我把 mule server 嵌入到标准的应用服务器中,比如 JBoss,我可以实现 webservice 的版本控制吗?
    • 您无法将 Mule 与 JavaEE 容器进行比较,它们执行完全不同的事情。 Mule 能够同时启动多个 HTTP 服务器,但如果这些服务器在不同的应用程序中,它们必须在不同的端口上。
    • 请参阅我已在 mule 的日志中成功部署了应用程序。没有错误。 ****************************************************** ******************** * - - + 应用程序 + - - * - - + 状态 + - - * ************* ****************************************************** ******* * XXXXXXXXXXXXXXX-2013.5.1RC3 * 已部署 * * XXXXXXXXXXXXXX-2013.5.1RC4 * 已部署 * ************************* ******************************************************
    • 你告诉我的是,一台 mule 服务器只能有一个 web 应用程序锁定 80 端口,不是吗?任何 mule 都无法使用不同的 url 提供真正的 ws 版本控制...
    • 正如大卫所提到的,您不能在同一台服务器上部署 2 个 mule 应用程序来侦听同一个端口。您可以将应用程序部署在单独的服务器上,或者将 mule 配置中的一个端口更改为 25101 以外的其他端口。我会将 mule-config 端口 25101 中的一个更改为另一个端口。例如26101
    【解决方案2】:

    我终于在 tomcat 上部署了我的应用程序,并将 http 入站端点替换为 servlet 入站端点。我用 servlet 类 org.mule.transport.servlet.MuleReceiverServlet 配置 web.xml。现在我可以在同一个端口上部署多个应用程序了。

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 2016-02-20
      • 2010-10-30
      • 2011-11-01
      • 2010-09-21
      • 2017-01-21
      相关资源
      最近更新 更多