【发布时间】:2015-05-21 03:34:09
【问题描述】:
为 grails 使用 Jms 插件并为 ActiveMQ 添加依赖项效果很好。没问题。
现在我想超越并执行一些自定义和微调,以使 ActiveMQ 按我的需要运行,所以我需要配置代理实例。
例如我想使用 JDBC 存储。
如何使用 grails 和 vm 嵌入式代理来做到这一点?
我实际上已经遵循了 JMS grails 插件的参考文档...我添加了 jms 插件和 activemq 依赖项并将其放在资源上:
jmsConnectionFactory(SingleConnectionFactory) {
targetConnectionFactory = { ActiveMQConnectionFactory cf ->
//brokerURL = 'vm://localhost'
brokerURL = 'tcp://localhost:61616?jms.useAsyncSend=true'
}
}
正如我所说,这很好......但我需要在这里进行更多调整,所以我尝试将它添加到资源中,以便我可以访问代理进行微调:
/* Establish the broker */
amq.broker(useJmx: false, persistent: true) {
amq.transportConnectors() {
amq.transportConnector(uri: "tcp://localhost:61616")
}
}
amqConnectionFactory(ActiveMQConnectionFactory) {
brokerURL = "vm://localhost"
}
jmsConnectionFactory(SingleConnectionFactory) {
targetConnectionFactory = ref(amqConnectionFactory)
}
但我开始遇到依赖问题,例如:
2015-03-18 13:44:14 - spring.RuntimeSpringConfigUtilities [RuntimeConfiguration] Unable to load beans from resources.groovy
org.springframework.beans.FatalBeanException: NamespaceHandler class [org.apache.xbean.spring.context.v2.XBeanNamespaceHandler] for namespace [http://activemq.apache.org/schema/core] not found; nested exception is java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
所以我开始添加依赖:
compile 'org.apache.activemq:activemq-spring:5.7.0'
compile 'org.springframework:spring-beans:4.1.1.RELEASE'
compile 'org.apache.xbean:xbean-spring:4.1'
但还是有问题:
java.lang.NoClassDefFoundError: org/springframework/core/OrderComparator$OrderSourceProvider
此时我觉得我做错了什么,因为我看到了太多的复杂性。
有没有最好的方法来做到这一点?
【问题讨论】:
-
好吧,也许验证者在这里有一点意思。你都尝试了些什么?给我们看一些代码。
-
验证器? ... 你的意思是? ,,, 我想将 ActiveMQ 配置为使用 MySQL 持久性而不是 KahaDB 或文件系统
-
cfrick 正在谈论 SO question 验证器。但是,查看此插件的源代码 (github.com/domix/grails-activemq) 似乎没有公开任何配置 ActiveMQ 的方法。为了以这种方式进一步配置它,您将不得不查看 ActiveMQ 支持的内容(可能是类路径上的配置文件/设置)或不使用插件。
-
对不起,我可能没有很好地解释......我正在使用 jms 插件......但不是 grails-activemq 插件。
-
好的...我改进了信息。谢谢你的意见。