我使用的是Camel版本3.2.0和Spring Boot版本2.2.6.Release。
我正在使用camel-http组件来使用一个rest服务,该服务以JSON格式返回产品列表。
我正在尝试存储在csv文件中。由于http响应没有设置在out in exchange中,因此正文为空。
<route id="getProducts">
<from uri="quartz://groupName/timerName?cron=0 0/2 * 1/1 * ? *" />
<setHeader name="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
<to uri="http://localhost:8080/product"></to>
<log message=" before processor \n Body ${body} \n headers ${headers}"/>
<!-- <process ref="processor" /> -->
<log message=" before convert \n Body ${body} \n headers ${headers}"/>
<marshal>
<bindy type="Csv" classType="com.basf.vo.Product" />
</marshal>
<log message=" after convert \n Body ${body}"/>
<to uri="file:\balachandar\?fileName=abc.csv"/>
<log message="Products Received \n ============================= \n"/>
</route>
<log message=" before processor \n Body ${body} \n headers ${headers}"/> => It is printing Body {"productId":1,"name":"Pink Ralph Lauren Polo Shirt","category":"Dress"} in the console
<log message=" before convert \n Body ${body} \n headers ${headers}"/> => It is not printing the body. Body is empty.
I used custom processor to know the body.
public void process(Exchange exchange) throws Exception {
String msg = exchange.getIn().getBody(String.class);
String msg1 = exchange.getMessage(String.class);
System.out.println("Rest Response is:->" + msg); // Rest Response is:->
System.out.println("Rest Response is:->" + msg1); // Rest Response is:->null
}
响应类型为流。当您记录响应时,第一次使用该流,并且数据已消失。您可以启用流缓存或将流转换为字符串(
),然后再对消息正文执行任何其他操作。
我在正确设置HTTP组件方面遇到了一些麻烦。目前,微服务从提供者提取JSON内容,对其进行处理,并将其发送到下一个服务以进行进一步的处理。主要问题是这个微服务创建了大量的CLOSE_WAIT套接字连接。我理解“keep-alive”的整个概念将保持连接打开直到我关闭它,但服务器可能会因为某些原因丢弃连接并创建这个CLOSE_WAIT套接字。 我已经创建了一个用于调试/测试目的的小服务,它向Goog
我将我的Fabric8 Spring Boot Camel pom.xml升级到使用Camel 2.16.0,但并非所有组件都在2.16.0中可用 我不得不将以下组件保留在2.15.3,因为我得到了2.16.0版本的“丢失项目”: 骆驼指标 骆驼jsonpath 骆驼Spring靴 这些在Camel 2.16.0中不可用吗? 我使用的是Fabric8版本2.2.46和Spring Boot版本1.
我的骆驼路线是CXF接收器 错误消息:没有可用的正文类型: com.customer.requestcustomeremail.SendEmailRequest 但具有值:com.customer.requestcustomeremail.SendEmailRequest@1bcd32c6类型:java.lang.String on: Message[]。原因:没有类型转换器可用于从类型:java
我的测试处理器: 所以我有下一种情况:1)骆驼成功地从“test-camel-start”队列读取消息2)基处理器成功地处理消息3)在重试将消息传递到“test-camel-success”时失败 我收到了下一个日志跟踪: Log说“请求必须包含参数MessageBody”。 我不知道为什么这个消息体没有出现。
我刚刚开始将Apache Camel用于集成项目。我正在使用将对象持久化到mysql,但mybatisendpoint无法通过以下Trace消息解析: 2016-07-19 15:50:15跟踪事件助手:800-通知者:org。阿帕奇。骆驼impl。DefaultRuntimeEndpointRegistry@5847e0b4未为事件启用:由于未能在以下位置创建路由route1,无法启动Camel
我想在Camel环境中使用Jetty组件。这是我的spring配置的摘录。xml: 下面是用于返回字符串的代码: 本地地址有效(http://127.0.0.1/enc)但是浏览器没有正确显示字符串(显示为“abcÃö¼ÃŸ”–äääääŒääää‰)。我假设问题是一些编码。如何设置像“utf-8”这样的编码? 我在这里找不到任何提示(http://camel.apache.org/jetty.