我正在使用Apache camel JAVA DSL使用来自Apache kafka的消息。我通过在Kafka上将对象转换为byte[]
来编写对象。当我使用它时,我会收到一条带有字节[]
的消息。我将其反序列化并获得一个对象。
我检查它是否是MyObject
的对象,然后需要使用java DSL. to()
将其传递给bean。我的代码如下:
public class KafkaRouter extends RouteBuilder {
private MessageBean msgBean;
@Override
public void configure() throws Exception {
from("{{kafka.cons.uri}}").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
Object obj = SerializationUtils.deserialize(exchange.getIn().getBody(byte[].class)); //TODO cast to specific class as returned after deserialization.
if(obj !=null && obj instanceof MessageBean){
msgBean = (MessageBean)obj;
}
else {
throw new PTFException("Invalid Message read in Kafka Consumer");
}
}
}).bean(PTFTransformerService.class,"callTransformerService(msgBean)"); ;
}
现在的问题是我只想MyObject
在相应的调用方法,我不想使用TypeConvertors
。我不想得到Exchange/body in方法,我将在进程中处理我的流并抛出异常,如果读取无效消息,并且不将其转发到bean。
另一方面,我的方法是:
private void callTransformerService(MessageBean msgObj){
// Got my object here ;-)
}
您可以在处理器中设置Exchange主体,如下所示:
msgBean = (MessageBean)obj;
exchange.getIn().setBody(msgBean, MessageBean.class);
void callTransformerService(@Body MessageBean msgObj) {}
您可能需要编写一个自定义的回退类型转换器,可以将kafka字节[]转换为POJO
然后,您可以在bean中定义pojo类型,Camel将使用回退类型转换器尝试转换为pojo类型。
在函数参数前添加@Body
:
import org.apache.camel.Body;
private void callTransformerService(@Body MessageBean msgObj){
}
例如,在具有分页列表的路由上,网址可能如下所示,表示我们已加载第二个网页: 使用指令和来传递查询参数。例如: 或者,我们可以使用服务通过JS跳转: 读取查询参数 See Official Documentation on Query Parameters
我正在研究这个angular2项目,其中我使用从一个组件导航到另一个组件。 有两个组件。i、 例如, 我想从PagesComponent导航到DesignerComponent。 到目前为止其路由正确但我需要通过 我尝试使用RouteParams,但它的获取页面对象。 下面是我的代码: 页面.组件. ts 在html中,我正在执行以下操作: 在 DesignerComponent 构造函数中,我完
问题内容: 我希望能够使用ui-router转换为状态并传递任意对象。 我知道通常会使用它,但是我相信此值会插入URL中,并且我不希望用户能够对此数据添加书签。 我想做这样的事情。 有没有办法在不将值编码到URL的情况下执行此操作? 问题答案: 在0.2.13版中,您应该可以将对象传递到$ state.go, 然后访问控制器中的参数。 myParam将不会显示在URL中。 资源: 请参阅chris
我试图使用react router将props从app.jsx传递到某个路由组件,但出现以下错误
我需要将文件从文件夹同步到restendpoint。因此,如果文件被放置在特定文件夹中,我需要将该文件发送到接受多部分文件的RESTendpoint。我正在使用ApacheCamel来实现这一点。 RESTendpoint在Spring中编写,如下所示: 我是Camel的新手,并且已经弄清楚了如何通过构建路由并获取文件来轮询目录,但是我无法弄清楚如何使用此路由将此文件放入其余endpoint。这是
我尝试使用react路由器将道具传递给组件,如下所示: 我如何做到这一点,但与反应路由器,我如何在组件本身使用它? 我试过这个,但不起作用: