Mule - 找不到类型 org.apache.activemq

Posted

技术标签:

【中文标题】Mule - 找不到类型 org.apache.activemq【英文标题】:Mule - Unable to find type org.apache.activemq 【发布时间】:2013-09-12 20:12:37 【问题描述】:

我正在使用 Mule Studio 3.4 并想尝试使用 Active Mq。我知道 ActiveMq 嵌入在 Mule 中,因此不需要在类路径中添加 jar,顺便说在类路径中找不到 activeMq 类。我哪里错了? 这是我的配置(复制自http://www.mulesoft.org/mule-activemq-integration-examples):

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:jms="http://www.mulesoft.org/schema/mule/jms"
    xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd">
    <spring:beans>
    <spring:bean id="AmqDeadLetterStrategy"
                 class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy"
                 p:queuePrefix="DLQ." />

    <spring:bean id="AmqDefaultPolicyEntry"
                 class="org.apache.activemq.broker.region.policy.PolicyEntry"
                 p:queue="jobs.*"
                 p:deadLetterStrategy-ref="AmqDeadLetterStrategy" />

    <spring:bean id="AmqPolicyMap"
                 class="org.apache.activemq.broker.region.policy.PolicyMap"
                 p:defaultEntry-ref="AmqDefaultPolicyEntry" />

    <spring:bean name="AmqBroker"
                 class="org.apache.activemq.broker.BrokerService"
                 p:brokerName="esb-amq-broker"
                 p:persistent="true"
                 p:dataDirectory="$activemq.data.dir"
                 p:useJmx="true"
                 p:useShutdownHook="false"
                 p:destinationPolicy-ref="AmqPolicyMap"
                 init-method="start"
                 destroy-method="stop" />

    <spring:bean name="AmqRedeliveryPolicy"
                 class="org.apache.activemq.RedeliveryPolicy"
                 p:useExponentialBackOff="true" />

    <spring:bean name="AmqConnectionFactory"
                 class="org.apache.activemq.spring.ActiveMQConnectionFactory"
                 p:brokerURL="vm://esb-amq-broker"
                 p:redeliveryPolicy-ref="AmqRedeliveryPolicy"
                 depends-on="AmqBroker" />
  </spring:beans>

  <jms:activemq-connector name="EsbJmsConnector"
                          specification="1.1"
                          connectionFactory-ref="AmqConnectionFactory"
                          disableTemporaryReplyToDestinations="true"
                          persistentDelivery="true" />

</mule>

错误是“无法在项目的构建路径上找到类型 org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy...”和其他类似的错误。 谢谢!

【问题讨论】:

【参考方案1】:

Mule 不捆绑 activemq jar,也不捆绑任何 JMS 代理,因此您需要手动将其添加到您的项目或 $studio.home/plugins/org.mule.tooling.server.$mule.version_$mule.version.$time.stamp/mule/user,如果您希望容器提供它。

【讨论】:

感谢您的帮助,我下载了文件activemq-all-5.8.0.jar 并将其放在您建议的位置。它有所有需要的类。我重新启动了 eclpise,但仍然出现相同的错误。 你把罐子放在哪里了?你也在用eclipse还是studio? 我正在使用工作室,如果我在第一个bean中删除属性“p:queuePrefix="DLQ.",则不会显示错误!Pehraps它与jar加载本身无关 我不知道发生了什么,但重新粘贴该属性再次解决了问题。然后我无法重现错误!无论如何,您的回答可以让我进入下一个故障排除步骤,谢谢。

以上是关于Mule - 找不到类型 org.apache.activemq的主要内容,如果未能解决你的问题,请参考以下文章

Mule - 'map'运算符的类型不匹配

在 Mule 中设置 ActiveMQ pollingFrequency

Mule Syslog 入站端点

从 BizTalk WCF-WebHttp 适配器向 Mule 服务发布消息时出错:服务不支持内容类型应用程序/json

Mule 3 HTML 作为属性值

从 mule 中的队列/主题中读取消息