问题标签 [spring-camel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - 如何使 Camel 的“Netty4”组件输出端点的结果,但不回显所有输入?
我正在尝试使用 Apache Camel 来实现 TCP 游戏服务器。它将接受来自多个人类或机器人玩家的双向、同步 telnet 或 SSH 连接。
通信“协议”有点粗糙,并且基于早期版本中已经存在的遗留基础设施。基本上,客户端和服务器通过套接字交换 I/O(每个客户端一个连接)。
通常,这由单行命令字符串或单行响应字符串组成。但是,在某些情况下,输入或输出可以跨越多个换行符,然后才被视为“完整”并准备好接受对方的响应。所以我的计划是:
使用 Spring Boot 和 Apache Camel 创建 TCP 套接字服务器,并使用后者的“Netty4”组件。
使用聚合从套接字连接收集传入的文本行。根据检测到的输入类型,将它们汇总为一行或多行的消息。
将生成的消息传递给端点,端点解析输入并将适当的响应返回给套接字。
我可以显示任何其他代码或 Spring 配置,但我的问题的核心似乎是我要声明的路线:
当我启动服务器并4321
从单独的终端窗口远程登录到端口时,我可以在调试器中验证:
.completetionPredicate(...)
逻辑正在按预期在每一行输入上被调用,并且在一行输入之后,
echoService
端点正在按预期被调用。EOM
传递给端点的消息包含预期的聚合内容。
但是,有两个问题:
服务器将每行输入回显给客户端连接,而不是让端点确定响应内容。
服务器没有向客户端发送端点返回值。我将它记录到服务器控制台,否则它会被默默地丢弃。
关于我可能在这里遗漏的任何建议?期望的行为是路由将端点的返回值发送到客户端套接字,而只是端点的返回值。谢谢!
apache-camel - 骆驼处理器未设置标题
我无法使用以下 spring DSL 配置在处理器中注入/修改标头。你能帮我弄清楚我做错了什么吗?
处理器类
日志 - 消息历史 RouteId ProcessorId Processor Elapsed (ms) [sdPoll] [sdPoll] [timer://sdPoll?fixedRate=true&period=60000] [21176] [null] [onCompletion1] [onCompletion] [106] [sdPoll] [process7 ] [ref:refProcessor] [21067] [null] [process3] [ref:GenericErrorHandle] [21016]
Exchange[ID ID-ABC-63143-1516034486954-0-2 ExchangePattern InOnly 标 头 {breadcrumbId=ID-ABC-63143-1516034486954-0-1,CamelRedelivered=false,CamelRedeliveryCounter=0,firedTime=1 月 15 日星期一 11:41:31 EST 2018} BodyType null Body [Body is null] ]
Java DSL 似乎可以工作!那么我的 Spring DSL 配置有什么问题
消息历史 RouteId ProcessorId Processor Elapsed (ms) [route1 ] [route1 ] [timer://timer1?period=60000 ] [ 86] [route1 ] [process1 ] [RefProcessorCamel$3$1@258e2e41 ] [ 6] [route1 ] [to1 ] [ http://dummyhost ] [ 76]
Exchange[ID ID-ABC-63940-1516036107063-0-2 ExchangePattern InOnly 标 头 {Accept=application/json, Authorization=TODO, breadcrumbId=ID-ABC-63994-1516036220042-0-1, CamelHttpMethod=POST, CamelHttpUri= http: //localhost:8280/api/check , CamelRedelivered=false, CamelRedeliveryCounter=0, Content-Type=application/json,firedTime=Mon Jan 15 12:10:21 EST 2018} BodyType String Body TODO ]
apache-camel - 将断路器与骆驼 -ThrottlingExceptionRoutePolicy 一起使用
有一条路由正在消耗来自 jms 队列的消息,并在进行一些处理后向不可靠的 Web 服务发送请求(有时可能会关闭)。因此,如果服务中断,那么我需要停止从队列中消费一段时间。我尝试使用ThrottlingExceptionRoutePolicy。它将根据配置停止路由,但问题是当前消息在消息被移动到死信队列时收到错误消息。我已经浏览了ThrottlingExceptionRoutePolicy的代码根据代码,这将在为路由完成所有错误处理后调用。所以我需要修改camel的默认错误处理以避免在某些特定情况下将消息发送到DLQ。我尝试配置骆驼提供的各种错误处理程序,但在所有情况下骆驼都将消息发送到 DLQ。是否有一些配置或者我需要编写自定义错误处理程序来实现相同的目的。
这个问题与异步通信有关
ibm-mq - 成功测试连接后,到 IBM MQ 的骆驼 jms 路由立即关闭
我已经用过几次骆驼了,但这个问题已经超出了我的想象,我不知道我做错了什么。它是一个新应用程序,应该从 IBM MQ 获取消息并将文件放置到磁盘。路线很简单:
以下是创建连接工厂时使用的代码:
在应用程序启动并测试连接后,它立即开始关闭。不抛出异常。在本地测试时,我使用不同的配置文件并连接到 ActiveMQ 服务器。这运行良好,并做了它应该做的事情。
任何帮助将不胜感激!
/卡特琳娜
这是路由关闭之前的日志摘录:
rest - Apache Camel REST - 未连接
我正在尝试让 Apache Camel 的 REST DSL 工作,但它并没有为我连接。
我有一个被称为 RouteBuilder:
但是这些路线实际上并不起作用。
这是在 Spring Boot 应用程序中,该应用程序具有通过 JAX-RS 定义的其他 REST 端点,但这是一个集成包,我希望能够保持独立。奇怪的是,几个月前,在我不得不处理其他事情之前,这个 WAS 就可以工作了,但是现在,回到它,我什至无法让这个简单的端点工作。
我的 Maven pom.xml 中有 Camel,一切似乎都正常启动,但是当我点击 http:://localhost:9071/say/hello 时没有任何反应,我只是得到标准的 Tomcat 404 页面。
对我所缺少的有什么想法吗?
spring - 使用 Apache Camel 发送路由到单个端点的并行请求
我得到了多播的建议,其中单个请求被路由到多个端点,如下面的片段所示。但要求是将多个请求并行发送到单个端点。
apache-camel - 使用 apache-camel 设置父子关系
大家好,我有一个相当有趣的问题(至少对我来说)我有一个 REST 端点,它向我发送看起来像这样的数据
我有一个相应的java模型(用户有一个组列表等非常简单)任务是使用apache-camel将此数据发送给salesforce,同时迁移单个实体(用户)非常简单,归结为
我不知道如何将组与用户相关联,因为它们是通过 ID 字段(电话具有 user_id 属性)连接的,因为迁移过程仍在进行中,显然这些字段尚不存在。有什么方法可以同时迁移这两个东西吗?
apache-camel - com.thoughtworks.xstream.converters.ConversionException:无法调用
我有一个用 PowerMockito 测试 SpringCamelContext unittest 的情况,我收到以下错误。有人知道如何解决它。如果我申请
以及以下依赖项。
那么只有我收到以下错误:
有人知道怎么解决吗???
json - JsonMappingException 与 Apache Camel
我在骆驼路线上遇到了例外
骆驼路线:
不确定我做对了吗?任何建议将不胜感激