【问题标题】:mule am getting error as noSuchmethod error for activemq.. addedactivemq-all-5.13.3.jar file in buildpath also. help me to solve thismule 收到错误,因为 activemq 的 noSuchmethod 错误。还在 buildpath 中添加了activemq-all-5.13.3.jar 文件。帮我解决这个问题
【发布时间】:2016-09-24 00:36:30
【问题描述】:

我对 mule 和 activemq 很陌生。但我在我公司对 mule activemq 做 poc。这里我的问题是我下载了 apache-activemq-5.13.3。并启动并打开 activemq 的管理 gui。所以它正在运行。但是,当我在 mule 中使用队列发送方和接收方做简单示例时,我收到错误,因为 noSuchmethod 错误。我还在 buildpath 中添加了 activemq-all-5.13.3.jar 文件。帮我解决这个问题

这是我的错误日志

错误 2016-05-26 12:19:05,786 [[queue_test].TCP.receiver.02] org.mule.exception.DefaultMessagingExceptionStrategy:


留言:

org.apache.activemq.ActiveMQMessageProducerSupport.getDestination()Ljavax/jms/Destination; (java.lang.NoSuchMethodError)。消息有效负载的类型:ActiveMQBytesMessage 类型:org.mule.api.MessagingException 代码:MULE_ERROR--2 有效负载:ActiveMQBytesMessage {commandId = 0,responseRequired = false,messageId = null,originalDestination = null,originalTransactionId = null,producerId = null,destination = null,transactionId = null,到期 = 0,时间戳 = 0,到达 = 0,brokerInTime = 0,brokerOutTime = 0,correlationId = null,replyTo = null,persistent = false,type = null,priority = 0,groupID = null,groupSequence = 0,targetConsumerId = null,compressed = false,userID = null,content = null, marshalledProperties =空,数据结构= NULL,redeliveryCounter = 0,大小= 0,属性= {MULE_SESSION = rO0ABXNyACNvcmcubXVsZS5zZXNzaW9uLkRlZmF1bHRNdWxlU2Vzc2lvbi7rdtEW7GGKAwAFWgAFdmFsaWRMAA1mbG93Q29uc3RydWN0dAAmTG9yZy9tdWxlL2FwaS9jb25zdHJ1Y3QvRmxvd0NvbnN0cnVjdDtMAAJpZHQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACnByb3BlcnRpZXN0AA9MamF2YS91dGlsL01hcDtMAA9zZWN1cml0eUNvbnRleHR0ACdMb3JnL211bGUvYXBpL3NlY3VyaXR5L1NlY3VyaXR5Q29udGV4dDt4cAFwdAAkZjA1MDI0ZjItMjMwZC0xMWU2LTlkOWUtZTY1ZTIwNTI0MTUzc3IAJWphdmEudXRp bC5Db2xsZWN0aW9ucyRTe... JavaDoc:http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html


异常堆栈是:

  1. org.apache.activemq.ActiveMQMessageProducerSupport.getDestination()Ljavax/jms/Destination; (java.lang.NoSuchMethodError) org.apache.activemq.ActiveMQMessageProducerSupport:269 (null)

  2. org.apache.activemq.ActiveMQMessageProducerSupport.getDestination()Ljavax/jms/Destination; (java.lang.NoSuchMethodError)。消息负载的类型:ActiveMQBytesMessage (org.mule.api.MessagingException) org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor:32 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)


根异常堆栈跟踪:

java.lang.NoSuchMethodError: org.apache.activemq.ActiveMQMessageProducerSupport.getDestination()Ljavax/jms/Destination; 在 org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:269) 在 org.mule.transport.jms.Jms102bSupport.send(Jms102bSupport.java:266) 在 org.mule.transport.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:185) 在 org.mule.transport.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:77) 在 org.mule.transport.AbstractMessageDispatcher.process(AbstractMessageDispatcher.java:107

【问题讨论】:

  • 我在我阅读的某个地方找到了答案。我在 mule anypoint studio 的构建路径中添加了最新的 j2ee jar 文件..我现在不知道它是如何工作的..谁能解释一下,在哪些情况下我们会收到这个错误..
  • 更新了答案以获得更多说明

标签: mule activemq mule-studio mule-component


【解决方案1】:

当您更新了最新的 J2EE jar 时,它解决了这个问题。此方法 getDestination() 定义在 javax.jms jar 的 MessageProducer 类中。

1.1 之前的 JMS jar 没有定义 getDestination() 方法。请参阅 javax.jms 1.0 jar 的源代码。最新的 jar 已经定义了这个方法。

package javax.jms;

public abstract interface MessageProducer
{
  public abstract void close()
    throws JMSException;

  public abstract int getDeliveryMode()
    throws JMSException;

  public abstract boolean getDisableMessageID()
    throws JMSException;

  public abstract boolean getDisableMessageTimestamp()
    throws JMSException;

  public abstract int getPriority()
    throws JMSException;

  public abstract long getTimeToLive()
    throws JMSException;

  public abstract void setDeliveryMode(int paramInt)
    throws JMSException;

  public abstract void setDisableMessageID(boolean paramBoolean)
    throws JMSException;

  public abstract void setDisableMessageTimestamp(boolean paramBoolean)
    throws JMSException;

  public abstract void setPriority(int paramInt)
    throws JMSException;

  public abstract void setTimeToLive(long paramLong)
    throws JMSException;
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-28
    • 2021-05-26
    • 2012-07-31
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多