Mule deployment error: log4j JMS Appender Invalid

2019-08-12 22:20发布

问题:

I'm deploying a mule application and receive this error. I'm using Mule 3.4.1-EE and activeMQ 5.8

JMSException: Could not create Transport. Reason: java.lang.IllegalArgumentException: Invalid connect parameters: wireFormat.maxInactivityDurationInitalDelay=30000

Occording to this the argument is correct: http://activemq.apache.org/configuring-wire-formats.html. If I take out the wireFormat option, it will throw an error about it need to be set.

<appender name="jms" class="org.apache.log4j.net.JMSAppender">
    <param name="InitialContextFactoryName" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
    <param name="ProviderURL" value="tcp://localhost:61616?wireFormat.maxInactivityDurationInitalDelay=30000" />
    <param name="TopicBindingName" value="logTopic" />
    <param name="TopicConnectionFactoryBindingName" value="ConnectionFactory" />
</appender>

Thank you for your help.

Here is the full stacktrace:

log4j:ERROR Error while activating options for appender named [jms].
javax.jms.JMSException: Wire format negotiation timeout: peer did not send his wire format.
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1409)
    at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1496)
    at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:325)
    at org.apache.activemq.ActiveMQConnection.createTopicSession(ActiveMQConnection.java:1122)
    at org.apache.log4j.net.JMSAppender.activateOptions(JMSAppender.java:218)
    at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
    at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:809)
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:547)
    at org.mule.module.launcher.log4j.ApplicationAwareRepositorySelector.configureFrom(ApplicationAwareRepositorySelector.java:180)
    at org.mule.module.launcher.log4j.ApplicationAwareRepositorySelector.getLoggerRepository(ApplicationAwareRepositorySelector.java:89)
    at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:208)
    at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
    at org.mule.module.logging.MuleLoggerFactory.getLogger(MuleLoggerFactory.java:77)
    at org.mule.module.logging.DispatchingLogger.getLogger(DispatchingLogger.java:419)
    at org.mule.module.logging.DispatchingLogger.trace(DispatchingLogger.java:53)
    at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:192)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Wire format negotiation timeout: peer did not send his wire format.
    at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:98)
    at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
    at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:81)
    at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:86)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1380)
    ... 21 more

回答1:

It seems to be a well known issue: http://activemq.apache.org/javaxjmsjmsexception-wire-format-negociation-timeout-peer-did-not-send-his-wire-format.html



标签: log4j mule