Mule项目有多个流,其中一些流端点在测试期间启动时可能处于脱机状态。任何流中的端点失败都会导致整个Mule项目无法部署。控制台记录已部署域状态但应用程序状态= FAILED。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Starting app 'test' +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
. Root Exception was: Connection refused: connect. Type: class java.net.ConnectException
ERROR 2018-01-09 10:31:08,287 [main] org.mule.module.launcher.application.DefaultMuleApplication:
********************************************************************************
Message : Could not connect to broker URL: tcp://localhost:61616.
Reason: java.net.ConnectException: Connection refused: connect
JMS Code : null
*************************************************************
* Application "test" shut down normally on: 1/9/18 10:31 AM *
* Up for: 0 days, 0 hours, 0 mins, 1.449 sec *
*************************************************************
ERROR 2018-01-09 10:31:08,413 [main] org.mule.module.launcher.DefaultArchiveDeployer:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Failed to deploy artifact 'test', see below +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
org.mule.module.launcher.DeploymentStartException: ConnectException: Connection refused: connect
尝试在可能存在启动连接问题但对运行项目没有影响的流上设置initialState =“stopped”。项目仍然无法运行且没有正在运行的流程。
将CatchExceptionStrategy添加到可能在启动时失败的入站端点不可用。在流程中也尝试了“直到成功”的范围。
特别是有一些JMS和Web服务组件可能在开发和测试期间的不同时间脱机。想要配置流以允许整个项目继续,即使单个组件/流在启动时无法连接。想要管理具有多个流的单个项目,以便某些流可能不活动。
Environment: Anypoint Studio and Mule 3.9.0 EE.
答案 0 :(得分:2)
如果您希望部署成功,即使您的服务不可用,您也需要在blocking=false
的JMS连接器上提供重新连接策略。例如:
<jms:activemq-connector name="Active_MQ" username="a" password="b" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ">
<reconnect-forever blocking="false"/>
</jms:activemq-connector>
有关重新连接策略的更多信息,请参阅MuleSoft文档:https://docs.mulesoft.com/mule-user-guide/v/3.9/configuring-reconnection-strategies如果需要。