当前位置: 首页 > 知识库问答 >
问题:

在使用apache camel scala DSL时,如何让“事务处理”工作?

卓学智
2023-03-14

我开始使用scala DSL,并且非常喜欢它。

我目前有一个混合java和Scala的项目。

"amq:queue:myQueue" ==> {
    routeId("myTransactedRoute")
    transacted("JMS_PROPAGATION_REQUIRED")
    -->("log:foo")
}

其中“jms_propagation_required”是我的事务策略,可以很好地使用Java。

我做错什么了吗?

org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route myTransactedRoute at: >>> From[amq:queue:myQueue] <<< in route: Route(myTransactedRoute)[[From[amq:queue:myQueue... because of Route myTransactedRoute has no output processors. You need to add outputs to the route such as to("log:foo").
at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1619) ~[camel-core-2.15.2.jar:2.15.2]
at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:123) ~[camel-spring-2.15.2.jar:2.15.2]
at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:332) ~[camel-spring-2.15.2.jar:2.15.2]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:151) ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:128) ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331) ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:773) ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483) ~[spring-context-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) ~[spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) [spring-web-4.1.5.RELEASE.jar:4.1.5.RELEASE]
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210) [catalina.jar:6.0.41]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709) [catalina.jar:6.0.41]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) [catalina.jar:6.0.41]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) [catalina.jar:6.0.41]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583) [catalina.jar:6.0.41]
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1429) [catalina.jar:6.0.41]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_11]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_11]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_11]
at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_11]
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) [tomcat-coyote.jar:6.0.41]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.8.0_11]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.8.0_11]
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:631) [catalina.jar:6.0.41]
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:568) [catalina.jar:6.0.41]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_11]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_11]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_11]
at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_11]
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:295) [tomcat-coyote.jar:6.0.41]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.8.0_11]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.8.0_11]
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466) [na:1.8.0_11]
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) [na:1.8.0_11]
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) [na:1.8.0_11]
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399) [na:1.8.0_11]
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:828) [na:1.8.0_11]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_11]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_11]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_11]
at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_11]
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) [na:1.8.0_11]
at sun.rmi.transport.Transport$1.run(Transport.java:178) [na:1.8.0_11]
at sun.rmi.transport.Transport$1.run(Transport.java:175) [na:1.8.0_11]
at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_11]
at sun.rmi.transport.Transport.serviceCall(Transport.java:174) [na:1.8.0_11]
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:557) [na:1.8.0_11]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812) [na:1.8.0_11]
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671) [na:1.8.0_11]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_11]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_11]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_11]

由:org.apache.camel.failedtoCreaterouteException导致:未能在:>>>从[amq:queue:myqueue]<<<在route:route(myTransactedRoute)[[from[amq:queue:myTransactedRoute][[from[amq:queue:myqueue...因为route myTransactedRoute]没有输出处理器。您需要将输出添加到路由中,例如to(“log:foo”)。在)~[camel-core-2.15.2.jar:2.15.2]在org.apache.camel.impl.defaultcamelcontext.startroute(Defaultcamelcontext.java:841)~[camel-core-2.15.2.jar:2.15.2]在org.apache.camel.impl.defaultcamelcontext.startroute(Defaultcamelcontext.java:841)~[camel-core-2.15.2.jar:2.15.2]在15.2]在org.apache.camel.impl.DefaultCamelContext.Access$000(DefaultCamelContext.java:167)~[comeL-core-2.15.2.jar:2.15.2]在org.apache.camel.impl.defaultcamelcontext.java:2467)~[camel-core-2.15.2.jar:2.15.2]在org.apache.camel.impl.defaultcamelcontext.java:2463)~[camel-core-2.15.2.jar:2.15.2]在defaultCamelContext.doStart(DefaultCamelContext.java:2463)~[camel-core-2.15.2.jar:2.15.2]在org.apache.camel.support.servicesUpport.start(servicesUpport.java:61)~[camel-core-2.15.2.jar:2.15.2]在org.apache.camel.impl.defaultCamelContext.start(DefaultCamelContext.java:2432)~[camel-core-2.15.2.jar:2.15.2]在.java:255)~[camel-spring-2.15.2.jar:2.15.2]在org.apache.camel.spring.springcamelContext.onApplicationEvent(SpringCamelContext.java:121)~[camel-spring-2.15.2.jar:2.15.2]...51个常见框架被省略由:java.lang.IllegalArgumentException引起:路由amq-asyncCrmPrintConfirm没有输出处理器。您需要将输出添加到路由中,例如to(“log:foo”)。在org.apache.camel.model.routeDefinition.addroutes(routeDefinition.java:1017)~[camel-core-2.15.2.jar:2.15.2]...64个常见帧被省略

共有1个答案

申屠俊发
2023-03-14

在对代码进行了更深入的研究后,我发现了一些看起来像是小故障的东西,我正在测试,如果它有效,我将执行一个拉请求。

 类似资料:
  • 我想了解Spring Batch是如何进行事务管理的。这不是一个技术问题,而是一个概念性的问题:Spring Batch使用什么方法?这种方法的后果是什么? 让我试着澄清一下这个问题。例如,在TaskletStep中,我看到步骤执行通常如下所示: 准备步骤元数据的几个JobRepository事务 每一块要处理的业务事务 更多JobRepository事务,用区块处理的结果更新步骤元数据 这似乎是

  • 我正在尝试获得骆驼路线JMS- 下面的例子说明了如果REST服务的服务器出现故障而无法交付route时会发生什么情况。 我得到了正确的例外: 但是消息被消费并从队列中删除。我的假设是使用事务/事务骆驼和AMQ可以解决这个问题并将消息移动到ActiveMQ.DLQ. 我已经阅读了《骆驼行动》第一版的第9章,并在谷歌上搜索,但没有找到任何解决我问题的方法。 我知道我可以创建/定义自己的Transact

  • 我正试图让spring slueth通过我们的系统提供追踪身份。 在检查其他服务的日志时,我注意到正在生成新的ID。

  • 问题内容: 我们有一个用于生成唯一数字键的表。这些键然后用作其他表中的PrimaryKey。表结构是这样的: 所以我们在这个表中有数据 所以,当我们需要下一个主键表中我们可以得到从这个表,其中是,它会给我们400,我们的增量(400 + 1),它和我们更新表也是这个关键。所以我们现在是401。 我们用于此目的的sql是: SQL1: 我的问题是,是否需要锁定表,以便如果多个用户同时调用此键,则键可

  • 当使用事务处理时,需要创建 Session 对象。在进行事务处理时,可以混用 ORM 方法和 RAW 方法,如下代码所示: func MyTransactionOps() error { session := engine.NewSession() defer session.Close() // add Begin() before any action

  • 启动事务 $this->db->start(); Swoole::$php->db('slave2')->start(); 提交事务 $this->db->commit(); Swoole::$php->db('slave2')->commit(); 回滚事务 $this->db->rollback(); Swoole::$php->db('slave2')->rollback();