我想发送表示列名的字符串,并且在有sql获取数据后,再在csv上全部发送。 我的目标是在csv上添加列标题。
我知道有骆驼csv选项可以输出列标题,但是任何选项都对我有用,所以我尝试在将数据写入CSV之前发送字符串。
我想知道我是否可以将String发送给骆驼csv?如果是,请您告诉我如何?
XML
<to uri="bean:testImpl?method=columnHeader()" />
<to uri="sql:{{order.query}}?dataSource=orderDataSource" />
<marshal>
<csv delimiter=";" />
</marshal>
Java testImpl.class
public String columnHeader() {
return "header1;header2;header3;header4;header5;header6;header7";
}
我尝试过这样,但是程序无法识别testImpl.class中的方法columnHeader
error : org.apache.camel.component.bean.MethodNotFoundException: Method with name: columnHeader() not found on bean
谢谢您的帮助
答案 0 :(得分:0)
您的Java类真的是骆驼(或Spring)Bean吗?为了在骆驼路线中使用Bean,必须在上下文中将它们注册为Bean。
在Spring中,可以使用@Component
注释或通过使用Java或XML配置Bean来实现。