我正在使用grails 3.0.4并且install-plugin不再工作了。我在gradle依赖项中添加了路由插件,但我可以使用grails create-route命令,如在线示例中所示。我已经在grails-app / routes中创建了自己的路由类,但是当我运行grails时,似乎根本没有使用该路由。是否有我需要做的额外配置,比如在某处创建一个bean?
我的课程如下:
import org.apache.camel.builder.RouteBuilder
class TrackingMessageRoute extends RouteBuilder {
def grailsApplication
@Override
void configure() {
def config = grailsApplication?.config
from('seda:input.queue').to('stream:out')
from('mina2:tcp://localhost:553').to('stream:out')
}
}
答案 0 :(得分:2)
确实没有为grails 3更新路由插件,但像@jstell建议的那样,使用camel库实际上很容易。这就是我实现我的解决方案的方式:
在依赖项下的build.gradle中,根据您要使用的组件添加以下依赖项,如下所示。
运行时" org.apache.camel:camel-core:2.15.3" 运行时" org.apache.camel:camel-groovy:2.15.3" 运行时" org.apache.camel:camel-stream:2.15.3" //运行时" org.apache.camel:camel-netty:2.15.3" 运行时" org.apache.camel:camel-netty4:2.15.3" 运行时" org.apache.camel:camel-spring:2.15.3" 运行时" org.apache.camel:camel-jms:2.15.3" runtime" org.apache.activemq:activemq-camel:5.11.1" runtime" org.apache.activemq:activemq-pool:5.11.1"
创建一个扩展RouteBuilder的路由,如下所示:
class TrackingMessageRoute extends RouteBuilder {
def grailsApplication
@Override
void configure() {
def config = grailsApplication?.config
//from('netty4:tcp://192.168.254.3:553?sync=true&decoders=#decoders&encoder=#encoder').to('activemq:queue:Mimacs.Tracking.Queue')
from('netty4:tcp://192.168.254.3:553?serverInitializerFactory=#sif&keepAlive=true&sync=true&allowDefaultCodec=false').to('activemq:queue:Mimacs.Tracking.Queue')
from('activemq:queue:Mimacs.Tracking.Queue').bean(MimacsMessageListener.class)
}
}
CamelContext camelContext = new DefaultCamelContext(registry) camelContext.addComponent(" ActiveMQ的",ActiveMQComponent.activeMQComponent("故障切换:TCP://本地主机:61616&#34)) camelContext.addRoutes new TrackingMessageRoute() camelContext.start()
NB。我遗漏了某些不影响此答案的代码部分。如果你有这些,那么你就可以去了。
答案 1 :(得分:1)
Grails 3尚未更新路由插件。 有关几个重要插件的Grails 3准备状态,请参阅https://github.com/grails/grails-core/wiki/Grails-3-Priority-Upgrade-Plugins。
由于Grails 3与Spring引导密切相关,因此直接使用Camel库应该相对容易(不需要插件)。有关可能有用的信息,请参阅http://camel.apache.org/spring-boot.html。